/*!
 * 
 * Angle - Bootstrap Admin App + AngularJS
 * 
 * Author: @themicon_co
 * Website: http://themicon.co
 * License: http://support.wrapbootstrap.com/knowledge_base/topics/usage-licenses
 * 
 */
function NGTableCtrl(e, t, o, a, n, r) {
	"use strict";
	var l = this,
		i = [{
			name: "Moroni",
			age: 50,
			money: -10
		}, {
			name: "Tiancum",
			age: 43,
			money: 120
		}, {
			name: "Jacob",
			age: 27,
			money: 5.5
		}, {
			name: "Nephi",
			age: 29,
			money: -54
		}, {
			name: "Enos",
			age: 34,
			money: 110
		}, {
			name: "Tiancum",
			age: 43,
			money: 1e3
		}, {
			name: "Jacob",
			age: 27,
			money: -201
		}, {
			name: "Nephi",
			age: 29,
			money: 100
		}, {
			name: "Enos",
			age: 34,
			money: -52.5
		}, {
			name: "Tiancum",
			age: 43,
			money: 52.1
		}, {
			name: "Jacob",
			age: 27,
			money: 110
		}, {
			name: "Nephi",
			age: 29,
			money: -55
		}, {
			name: "Enos",
			age: 34,
			money: 551
		}, {
			name: "Tiancum",
			age: 43,
			money: -1410
		}, {
			name: "Jacob",
			age: 27,
			money: 410
		}, {
			name: "Nephi",
			age: 29,
			money: 100
		}, {
			name: "Enos",
			age: 34,
			money: -100
		}];
	l.data = i, l.tableParams3 = new o({
		page: 1,
		count: 10
	}, {
		total: i.length,
		getData: function(e, o) {
			var a = o.filter() ? t("filter")(i, o.filter()) : i,
				n = o.sorting() ? t("orderBy")(a, o.orderBy()) : i;
			o.total(n.length), e.resolve(n.slice((o.page() - 1) * o.count(), o.page() * o.count()))
		}
	}), l.changeSelection = function() {};
	var s = [{
		name: "Moroni",
		age: 50
	}, {
		name: "Tiancum",
		age: 43
	}, {
		name: "Jacob",
		age: 27
	}, {
		name: "Nephi",
		age: 29
	}, {
		name: "Enos",
		age: 34
	}, {
		name: "Tiancum",
		age: 43
	}, {
		name: "Jacob",
		age: 27
	}, {
		name: "Nephi",
		age: 29
	}, {
		name: "Enos",
		age: 34
	}, {
		name: "Tiancum",
		age: 43
	}, {
		name: "Jacob",
		age: 27
	}, {
		name: "Nephi",
		age: 29
	}, {
		name: "Enos",
		age: 34
	}, {
		name: "Tiancum",
		age: 43
	}, {
		name: "Jacob",
		age: 27
	}, {
		name: "Nephi",
		age: 29
	}, {
		name: "Enos",
		age: 34
	}];
	l.tableParams4 = new o({
		page: 1,
		count: 10
	}, {
		total: s.length,
		getData: function(e, t) {
			e.resolve(s.slice((t.page() - 1) * t.count(), t.page() * t.count()))
		}
	}), l.tableParams = new o({
		page: 1,
		count: 10,
		sorting: {
			name: "asc"
		}
	}, {
		total: i.length,
		getData: function(e, o) {
			var a = o.sorting() ? t("orderBy")(i, o.orderBy()) : i;
			e.resolve(a.slice((o.page() - 1) * o.count(), o.page() * o.count()))
		}
	}), l.tableParams2 = new o({
		page: 1,
		count: 10,
		filter: {
			name: "",
			age: ""
		}
	}, {
		total: i.length,
		getData: function(e, o) {
			var a = o.filter() ? t("filter")(i, o.filter()) : i;
			l.users = a.slice((o.page() - 1) * o.count(), o.page() * o.count()), o.total(a.length), e.resolve(l.users)
		}
	});
	var c = a("server/table-data.json");
	l.tableParams5 = new o({
		page: 1,
		count: 10
	}, {
		total: 0,
		counts: [],
		getData: function(e, t) {
			r.getData(e, t, c)
		}
	})
}
if ("undefined" == typeof $) throw new Error("This application's JavaScript requires jQuery");
var App = angular.module("angle", ["ngRoute", "ngAnimate", "ngStorage", "ngCookies", "pascalprecht.translate", "ui.bootstrap", "ui.router", "oc.lazyLoad", "cfp.loadingBar", "ngSanitize", "ngResource"]).run(["$rootScope", "$state", "$stateParams", "$window", "$templateCache", function(e, t, o, a) {
	e.$state = t, e.$stateParams = o, e.$storage = a.localStorage, e.app = {
		name: "Angle",
		description: "Angular Bootstrap Admin Template",
		year: (new Date).getFullYear(),
		layout: {
			isFixed: !0,
			isCollapsed: !1,
			isBoxed: !1,
			isRTL: !1
		},
		viewAnimation: "ng-fadeInUp"
	}, e.user = {
		name: "John",
		job: "ng-Dev",
		picture: "app/img/user/02.jpg"
	}
}]);
App.config(["$stateProvider", "$urlRouterProvider", "$controllerProvider", "$compileProvider", "$filterProvider", "$provide", "$ocLazyLoadProvider", "APP_REQUIRES", function(e, t, o, a, n, r, l, i) {
	"use strict";

	function s(e) {
		return "app/views/" + e
	}
	function c() {
		var e = arguments;
		return {
			deps: ["$ocLazyLoad", "$q", function(t, o) {
				function a(e) {
					return r.then("function" == typeof e ? e : function() {
						var o = n(e);
						return o ? t.load(o) : $.error("Route resolve: Bad resource name [" + e + "]")
					})
				}
				function n(e) {
					if (i.modules) for (var t in i.modules) if (i.modules[t].name && i.modules[t].name === e) return i.modules[t];
					return i.scripts && i.scripts[e]
				}
				for (var r = o.when(1), l = 0, s = e.length; s > l; l++) r = a(e[l]);
				return r
			}]
		}
	}
	App.controller = o.register, App.directive = a.directive, App.filter = n.register, App.factory = r.factory, App.service = r.service, App.constant = r.constant, App.value = r.value, l.config({
		debug: !1,
		events: !0,
		modules: i.modules
	}), t.otherwise("/app/dashboard"), e.state("app", {
		url: "/app",
		"abstract": !0,
		templateUrl: s("app.html"),
		controller: "AppController",
		resolve: c("fastclick", "modernizr", "icons", "screenfull", "animo", "sparklines", "slimscroll", "classyloader", "toaster", "whirl")
	}).state("app.dashboard", {
		url: "/dashboard",
		title: "Dashboard",
		templateUrl: s("dashboard.html"),
		resolve: c("flot-chart", "flot-chart-plugins")
	}).state("app.widgets", {
		url: "/widgets",
		title: "Widgets",
		templateUrl: s("widgets.html"),
		controller: "NullController",
		resolve: c("loadGoogleMapsJS", function() {
			return loadGoogleMaps()
		}, "google-map")
	}).state("app.buttons", {
		url: "/buttons",
		title: "Buttons",
		templateUrl: s("buttons.html"),
		controller: "NullController"
	}).state("app.colors", {
		url: "/colors",
		title: "Colors",
		templateUrl: s("colors.html"),
		controller: "NullController"
	}).state("app.notifications", {
		url: "/notifications",
		title: "Notifications",
		templateUrl: s("notifications.html"),
		controller: "NotificationController"
	}).state("app.ngdialog", {
		url: "/ngdialog",
		title: "ngDialog",
		templateUrl: s("ngdialog.html"),
		resolve: angular.extend(c("ngDialog"), {
			tpl: function() {
				return {
					path: s("ngdialog-template.html")
				}
			}
		}),
		controller: "DialogIntroCtrl"
	}).state("app.interaction", {
		url: "/interaction",
		title: "Interaction",
		templateUrl: s("interaction.html"),
		controller: "NullController"
	}).state("app.spinners", {
		url: "/spinners",
		title: "Spinners",
		templateUrl: s("spinners.html"),
		controller: "NullController"
	}).state("app.animations", {
		url: "/animations",
		title: "Animations",
		templateUrl: s("animations.html"),
		controller: "NullController"
	}).state("app.dropdown-animations", {
		url: "/dropdown-animations",
		title: "Dropdown Animations",
		templateUrl: s("dropdown-animations.html"),
		controller: "NullController"
	}).state("app.panels", {
		url: "/panels",
		title: "Panels",
		templateUrl: s("panels.html"),
		controller: "NullController"
	}).state("app.portlets", {
		url: "/portlets",
		title: "Portlets",
		templateUrl: s("portlets.html"),
		controller: "NullController",
		resolve: c("jquery-ui", "jquery-ui-widgets")
	}).state("app.maps-google", {
		url: "/maps-google",
		title: "Maps Google",
		templateUrl: s("maps-google.html"),
		controller: "NullController",
		resolve: c("loadGoogleMapsJS", function() {
			return loadGoogleMaps()
		}, "google-map")
	}).state("app.maps-vector", {
		url: "/maps-vector",
		title: "Maps Vector",
		templateUrl: s("maps-vector.html"),
		controller: "VectorMapController",
		resolve: c("vector-map")
	}).state("app.grid", {
		url: "/grid",
		title: "Grid",
		templateUrl: s("grid.html"),
		controller: "NullController"
	}).state("app.grid-masonry", {
		url: "/grid-masonry",
		title: "Grid Masonry",
		templateUrl: s("grid-masonry.html"),
		controller: "NullController"
	}).state("app.typo", {
		url: "/typo",
		title: "Typo",
		templateUrl: s("typo.html"),
		controller: "NullController"
	}).state("app.icons-font", {
		url: "/icons-font",
		title: "Icons Font",
		templateUrl: s("icons-font.html"),
		controller: "NullController"
	}).state("app.icons-weather", {
		url: "/icons-weather",
		title: "Icons Weather",
		templateUrl: s("icons-weather.html"),
		controller: "NullController"
	}).state("app.form-standard", {
		url: "/form-standard",
		title: "Form Standard",
		templateUrl: s("form-standard.html"),
		controller: "NullController"
	}).state("app.form-extended", {
		url: "/form-extended",
		title: "Form Extended",
		templateUrl: s("form-extended.html"),
		controller: "NullController",
		resolve: c("codemirror", "codemirror-plugins", "moment", "taginput", "inputmask", "localytics.directives", "slider", "ngWig", "filestyle")
	}).state("app.form-validation", {
		url: "/form-validation",
		title: "Form Validation",
		templateUrl: s("form-validation.html"),
		controller: "NullController",
		resolve: c("parsley")
	}).state("app.form-wizard", {
		url: "/form-wizard",
		title: "Form Wizard",
		templateUrl: s("form-wizard.html"),
		controller: "NullController",
		resolve: c("parsley")
	}).state("app.form-upload", {
		url: "/form-upload",
		title: "Form upload",
		templateUrl: s("form-upload.html"),
		controller: "NullController",
		resolve: c("filestyle")
	}).state("app.chart-flot", {
		url: "/chart-flot",
		title: "Chart Flot",
		templateUrl: s("chart-flot.html"),
		controller: "NullController",
		resolve: c("flot-chart", "flot-chart-plugins")
	}).state("app.chart-radial", {
		url: "/chart-radial",
		title: "Chart Radial",
		templateUrl: s("chart-radial.html"),
		controller: "NullController",
		resolve: c("classyloader")
	}).state("app.table-standard", {
		url: "/table-standard",
		title: "Table Standard",
		templateUrl: s("table-standard.html"),
		controller: "NullController"
	}).state("app.table-extended", {
		url: "/table-extended",
		title: "Table Extended",
		templateUrl: s("table-extended.html"),
		controller: "NullController"
	}).state("app.table-datatable", {
		url: "/table-datatable",
		title: "Table Datatable",
		templateUrl: s("table-datatable.html"),
		controller: "NullController",
		resolve: c("datatables", "datatables-pugins")
	}).state("app.table-ngtable", {
		url: "/table-ngtable",
		templateUrl: s("table-ngtable.html"),
		controller: "NullController",
		resolve: c("ngTable", "ngTableExport")
	}).state("app.timeline", {
		url: "/timeline",
		title: "Timeline",
		templateUrl: s("timeline.html"),
		controller: "NullController"
	}).state("app.calendar", {
		url: "/calendar",
		title: "Calendar",
		templateUrl: s("calendar.html"),
		controller: "NullController",
		resolve: c("jquery-ui", "jquery-ui-widgets", "moment", "fullcalendar")
	}).state("app.invoice", {
		url: "/invoice",
		title: "Invoice",
		templateUrl: s("invoice.html"),
		controller: "NullController"
	}).state("app.search", {
		url: "/search",
		title: "Search",
		templateUrl: s("search.html"),
		controller: "NullController",
		resolve: c("moment", "localytics.directives", "slider")
	}).state("app.todo", {
		url: "/todo",
		title: "Todo List",
		templateUrl: s("todo.html"),
		controller: "TodoController"
	}).state("app.profile", {
		url: "/profile",
		title: "Profile",
		templateUrl: s("profile.html"),
		controller: "NullController",
		resolve: c("loadGoogleMapsJS", function() {
			return loadGoogleMaps()
		}, "google-map")
	}).state("app.template", {
		url: "/template",
		title: "Blank Template",
		templateUrl: s("template.html"),
		controller: "NullController"
	}).state("app.documentation", {
		url: "/documentation",
		title: "Documentation",
		templateUrl: s("documentation.html"),
		controller: "NullController",
		resolve: c("flatdoc")
	}).state("app.mailbox", {
		url: "/mailbox",
		title: "Mailbox",
		"abstract": !0,
		templateUrl: s("mailbox.html"),
		controller: "MailboxController"
	}).state("app.mailbox.folder", {
		url: "/folder/:folder",
		title: "Mailbox",
		templateUrl: s("mailbox-inbox.html"),
		controller: "NullController"
	}).state("app.mailbox.view", {
		url: "/{mid:[0-9]{1,4}}",
		title: "View mail",
		templateUrl: s("mailbox-view.html"),
		controller: "NullController",
		resolve: c("ngWig")
	}).state("app.mailbox.compose", {
		url: "/compose",
		title: "Mailbox",
		templateUrl: s("mailbox-compose.html"),
		controller: "NullController",
		resolve: c("ngWig")
	}).state("app.multilevel", {
		url: "/multilevel",
		title: "Multilevel",
		template: '<h3>Multilevel Views</h3><div class="lead ba p">View @ Top Level <div ui-view=""></div> </div>'
	}).state("app.multilevel.level1", {
		url: "/level1",
		title: "Multilevel - Level1",
		template: '<div class="lead ba p">View @ Level 1<div ui-view=""></div> </div>'
	}).state("app.multilevel.level1.item", {
		url: "/item",
		title: "Multilevel - Level1",
		template: '<div class="lead ba p"> Menu item @ Level 1</div>'
	}).state("app.multilevel.level1.level2", {
		url: "/level2",
		title: "Multilevel - Level2",
		template: '<div class="lead ba p">View @ Level 2<div ui-view=""></div> </div>'
	}).state("app.multilevel.level1.level2.level3", {
		url: "/level3",
		title: "Multilevel - Level3",
		template: '<div class="lead ba p">View @ Level 3<div ui-view=""></div> </div>'
	}).state("app.multilevel.level1.level2.level3.item", {
		url: "/item",
		title: "Multilevel - Level3 Item",
		template: '<div class="lead ba p"> Menu item @ Level 3</div>'
	}).state("page", {
		url: "/page",
		templateUrl: "app/pages/page.html",
		resolve: c("modernizr", "icons", "parsley")
	}).state("page.login", {
		url: "/login",
		title: "Login",
		templateUrl: "app/pages/login.html"
	}).state("page.register", {
		url: "/register",
		title: "Register",
		templateUrl: "app/pages/register.html"
	}).state("page.recover", {
		url: "/recover",
		title: "Recover",
		templateUrl: "app/pages/recover.html"
	}).state("page.lock", {
		url: "/lock",
		title: "Lock",
		templateUrl: "app/pages/lock.html"
	}).state("page.404", {
		url: "/404",
		title: "Not Found",
		templateUrl: "app/pages/404.html"
	})
}]).config(["$translateProvider", function(e) {
	e.useStaticFilesLoader({
		prefix: "app/i18n/",
		suffix: ".json"
	}), e.preferredLanguage("en"), e.useLocalStorage()
}]).config(["cfpLoadingBarProvider", function(e) {
	e.includeBar = !0, e.includeSpinner = !1, e.latencyThreshold = 500, e.parentSelector = ".wrapper > section"
}]).controller("NullController", function() {}), App.constant("APP_COLORS", {
	primary: "#5d9cec",
	success: "#27c24c",
	info: "#23b7e5",
	warning: "#ff902b",
	danger: "#f05050",
	inverse: "#131e26",
	green: "#37bc9b",
	pink: "#f532e5",
	purple: "#7266ba",
	dark: "#3a3f51",
	yellow: "#fad732",
	"gray-darker": "#232735",
	"gray-dark": "#3a3f51",
	gray: "#dde6e9",
	"gray-light": "#e4eaec",
	"gray-lighter": "#edf1f2"
}).constant("APP_MEDIAQUERY", {
	desktopLG: 1200,
	desktop: 992,
	tablet: 768,
	mobile: 480
}).constant("APP_REQUIRES", {
	scripts: {
		whirl: ["vendor/whirl/dist/whirl.css"],
		classyloader: ["vendor/jquery-classyloader/js/jquery.classyloader.min.js"],
		animo: ["vendor/animo.js/animo.js"],
		fastclick: ["vendor/fastclick/lib/fastclick.js"],
		modernizr: ["vendor/modernizr/modernizr.js"],
		animate: ["vendor/animate.css/animate.min.css"],
		icons: ["vendor/skycons/skycons.js", "vendor/fontawesome/css/font-awesome.min.css", "vendor/simple-line-icons/css/simple-line-icons.css", "vendor/weather-icons/css/weather-icons.min.css"],
		sparklines: ["app/vendor/sparklines/jquery.sparkline.min.js"],
		slider: ["vendor/seiyria-bootstrap-slider/dist/bootstrap-slider.min.js", "vendor/seiyria-bootstrap-slider/dist/css/bootstrap-slider.min.css"],
		wysiwyg: ["vendor/bootstrap-wysiwyg/bootstrap-wysiwyg.js", "vendor/bootstrap-wysiwyg/external/jquery.hotkeys.js"],
		slimscroll: ["vendor/slimScroll/jquery.slimscroll.min.js"],
		screenfull: ["vendor/screenfull/dist/screenfull.min.js"],
		"vector-map": ["vendor/ika.jvectormap/jquery-jvectormap-1.2.2.min.js", "vendor/ika.jvectormap/jquery-jvectormap-world-mill-en.js", "vendor/ika.jvectormap/jquery-jvectormap-us-mill-en.js", "vendor/ika.jvectormap/jquery-jvectormap-1.2.2.css"],
		loadGoogleMapsJS: ["app/vendor/gmap/load-google-maps.js"],
		"google-map": ["vendor/jQuery-gMap/jquery.gmap.min.js"],
		"flot-chart": ["vendor/Flot/jquery.flot.js"],
		"flot-chart-plugins": ["vendor/flot.tooltip/js/jquery.flot.tooltip.min.js", "vendor/Flot/jquery.flot.resize.js", "vendor/Flot/jquery.flot.pie.js", "vendor/Flot/jquery.flot.time.js", "vendor/Flot/jquery.flot.categories.js", "vendor/flot-spline/js/jquery.flot.spline.min.js"],
		"jquery-ui": ["vendor/jquery-ui/ui/core.js", "vendor/jquery-ui/ui/widget.js"],
		"jquery-ui-widgets": ["vendor/jquery-ui/ui/core.js", "vendor/jquery-ui/ui/widget.js", "vendor/jquery-ui/ui/mouse.js", "vendor/jquery-ui/ui/draggable.js", "vendor/jquery-ui/ui/droppable.js", "vendor/jquery-ui/ui/sortable.js", "vendor/jqueryui-touch-punch/jquery.ui.touch-punch.min.js"],
		moment: ["vendor/moment/min/moment-with-locales.min.js"],
		inputmask: ["vendor/jquery.inputmask/dist/jquery.inputmask.bundle.min.js"],
		flatdoc: ["vendor/flatdoc/flatdoc.js"],
		codemirror: ["vendor/codemirror/lib/codemirror.js", "vendor/codemirror/lib/codemirror.css"],
		"codemirror-plugins": ["vendor/codemirror/addon/mode/overlay.js", "vendor/codemirror/mode/markdown/markdown.js", "vendor/codemirror/mode/xml/xml.js", "vendor/codemirror/mode/gfm/gfm.js", "vendor/marked/lib/marked.js"],
		taginput: ["vendor/bootstrap-tagsinput/dist/bootstrap-tagsinput.css", "vendor/bootstrap-tagsinput/dist/bootstrap-tagsinput.min.js"],
		filestyle: ["vendor/bootstrap-filestyle/src/bootstrap-filestyle.js"],
		parsley: ["vendor/parsleyjs/dist/parsley.min.js"],
		datatables: ["vendor/datatables/media/js/jquery.dataTables.min.js", "app/vendor/datatable-bootstrap/css/dataTables.bootstrap.css"],
		"datatables-pugins": ["app/vendor/datatable-bootstrap/js/dataTables.bootstrap.js", "app/vendor/datatable-bootstrap/js/dataTables.bootstrapPagination.js", "vendor/datatables-colvis/js/dataTables.colVis.js", "vendor/datatables-colvis/css/dataTables.colVis.css"],
		fullcalendar: ["vendor/fullcalendar/dist/fullcalendar.min.js", "vendor/fullcalendar/dist/fullcalendar.css"],
		gcal: ["vendor/fullcalendar/dist/gcal.js"]
	},
	modules: [{
		name: "toaster",
		files: ["vendor/angularjs-toaster/toaster.js", "vendor/angularjs-toaster/toaster.css"]
	}, {
		name: "localytics.directives",
		files: ["vendor/chosen_v1.2.0/chosen.jquery.min.js", "vendor/chosen_v1.2.0/chosen.min.css", "vendor/angular-chosen-localytics/chosen.js"]
	}, {
		name: "ngDialog",
		files: ["vendor/ngDialog/js/ngDialog.min.js", "vendor/ngDialog/css/ngDialog.min.css", "vendor/ngDialog/css/ngDialog-theme-default.min.css"]
	}, {
		name: "ngWig",
		files: ["vendor/ngWig/dist/ng-wig.min.js"]
	}, {
		name: "ngTable",
		files: ["vendor/ng-table/ng-table.min.js", "vendor/ng-table/ng-table.min.css"]
	}, {
		name: "ngTableExport",
		files: ["vendor/ng-table-export/ng-table-export.js"]
	}]
}), App.controller("LoginFormController", ["$scope", "$http", "$state", function(e, t, o) {
	e.account = {}, e.authMsg = "", e.login = function() {
		e.authMsg = "", t.post("api/account/login", {
			email: e.account.email,
			password: e.account.password
		}).then(function(t) {
			t.account ? o.go("app.dashboard") : e.authMsg = "Incorrect credentials."
		}, function() {
			e.authMsg = "Server Request Error"
		})
	}
}]), App.controller("RegisterFormController", ["$scope", "$http", "$state", function(e, t, o) {
	e.account = {}, e.authMsg = "", e.register = function() {
		e.authMsg = "", t.post("api/account/register", {
			email: e.account.email,
			password: e.account.password
		}).then(function(t) {
			t.account ? o.go("app.dashboard") : e.authMsg = t
		}, function() {
			e.authMsg = "Server Request Error"
		})
	}
}]), App.controller("CalendarController", ["$scope", function(e) {
	"use strict";

	function t(t, o) {
		var a = $("#remove-after-drop");
		t.fullCalendar({
			isRTL: e.app.layout.isRTL,
			header: {
				left: "prev,next today",
				center: "title",
				right: "month,agendaWeek,agendaDay"
			},
			buttonIcons: {
				prev: " fa fa-caret-left",
				next: " fa fa-caret-right"
			},
			buttonText: {
				today: "today",
				month: "month",
				week: "week",
				day: "day"
			},
			editable: !0,
			droppable: !0,
			drop: function(e, o) {
				var n = $(this),
					r = n.data("calendarEventObject");
				if (r) {
					var l = $.extend({}, r);
					l.start = e, l.allDay = o, l.backgroundColor = n.css("background-color"), l.borderColor = n.css("border-color"), t.fullCalendar("renderEvent", l, !0), a.is(":checked") && n.remove()
				}
			},
			eventDragStart: function(e) {
				n = e
			},
			events: o
		})
	}
	function o(e) {
		var t = $(".external-events");
		new r(t.children("div"));
		var o = "#f6504d",
			a = $(".external-event-add-btn"),
			l = $(".external-event-name"),
			i = $(".external-event-color-selector .circle");
		$(".external-events-trash").droppable({
			accept: ".fc-event",
			activeClass: "active",
			hoverClass: "hovered",
			tolerance: "touch",
			drop: function(t, o) {
				if (n) {
					var a = n.id || n._id;
					e.fullCalendar("removeEvents", a), o.draggable.remove(), n = null
				}
			}
		}), i.click(function(e) {
			e.preventDefault();
			var t = $(this);
			o = t.css("background-color"), i.removeClass("selected"), t.addClass("selected")
		}), a.click(function(e) {
			e.preventDefault();
			var a = l.val();
			if ("" !== $.trim(a)) {
				var n = $("<div/>").css({
					"background-color": o,
					"border-color": o,
					color: "#fff"
				}).html(a);
				t.prepend(n), new r(n), l.val("")
			}
		})
	}
	function a() {
		var e = new Date,
			t = e.getDate(),
			o = e.getMonth(),
			a = e.getFullYear();
		return [{
			title: "All Day Event",
			start: new Date(a, o, 1),
			backgroundColor: "#f56954",
			borderColor: "#f56954"
		}, {
			title: "Long Event",
			start: new Date(a, o, t - 5),
			end: new Date(a, o, t - 2),
			backgroundColor: "#f39c12",
			borderColor: "#f39c12"
		}, {
			title: "Meeting",
			start: new Date(a, o, t, 10, 30),
			allDay: !1,
			backgroundColor: "#0073b7",
			borderColor: "#0073b7"
		}, {
			title: "Lunch",
			start: new Date(a, o, t, 12, 0),
			end: new Date(a, o, t, 14, 0),
			allDay: !1,
			backgroundColor: "#00c0ef",
			borderColor: "#00c0ef"
		}, {
			title: "Birthday Party",
			start: new Date(a, o, t + 1, 19, 0),
			end: new Date(a, o, t + 1, 22, 30),
			allDay: !1,
			backgroundColor: "#00a65a",
			borderColor: "#00a65a"
		}, {
			title: "Open Google",
			start: new Date(a, o, 28),
			end: new Date(a, o, 29),
			url: "//google.com/",
			backgroundColor: "#3c8dbc",
			borderColor: "#3c8dbc"
		}]
	}
	if ($.fn.fullCalendar) {
		var n = null,
			r = function(e) {
				e && e.each(function() {
					var e = $(this),
						t = {
							title: $.trim(e.text())
						};
					e.data("calendarEventObject", t), e.draggable({
						zIndex: 1070,
						revert: !0,
						revertDuration: 0
					})
				})
			};
		$(function() {
			var e = $("#calendar"),
				n = a();
			o(e), t(e, n)
		})
	}
}]), App.controller("DataTableController", ["$scope", "$timeout", function(e, t) {
	"use strict";
	var o, a, n, r;
	t(function() {
		if ($.fn.dataTable) {
			o = $("#datatable1").dataTable({
				paging: !0,
				ordering: !0,
				info: !0,
				oLanguage: {
					sSearch: "Search all columns:",
					sLengthMenu: "_MENU_ records per page",
					info: "Showing page _PAGE_ of _PAGES_",
					zeroRecords: "Nothing found - sorry",
					infoEmpty: "No records available",
					infoFiltered: "(filtered from _MAX_ total records)"
				}
			}), a = $("#datatable2").dataTable({
				paging: !0,
				ordering: !0,
				info: !0,
				oLanguage: {
					sSearch: "Search all columns:",
					sLengthMenu: "_MENU_ records per page",
					info: "Showing page _PAGE_ of _PAGES_",
					zeroRecords: "Nothing found - sorry",
					infoEmpty: "No records available",
					infoFiltered: "(filtered from _MAX_ total records)"
				}
			});
			var e = "datatable_input_col_search",
				t = $("tfoot ." + e);
			t.keyup(function() {
				a.fnFilter(this.value, t.index(this))
			}), n = $("#datatable3").dataTable({
				paging: !0,
				ordering: !0,
				info: !0,
				oLanguage: {
					sSearch: "Search all columns:",
					sLengthMenu: "_MENU_ records per page",
					info: "Showing page _PAGE_ of _PAGES_",
					zeroRecords: "Nothing found - sorry",
					infoEmpty: "No records available",
					infoFiltered: "(filtered from _MAX_ total records)"
				},
				aoColumns: [{
					bVisible: !1
				}, {
					bVisible: !0
				}, {
					bVisible: !0
				}, {
					bVisible: !0
				}, {
					bVisible: !0
				}],
				sDom: 'C<"clear">lfrtip',
				colVis: {
					order: "alfa",
					buttonText: "Show/Hide Columns"
				}
			}), r = $("#datatable4").dataTable({
				paging: !0,
				ordering: !0,
				info: !0,
				sAjaxSource: "server/datatable.json",
				aoColumns: [{
					mData: "engine"
				}, {
					mData: "browser"
				}, {
					mData: "platform"
				}, {
					mData: "version"
				}, {
					mData: "grade"
				}]
			})
		}
	}), e.$on("$destroy", function() {
		o.fnDestroy(), a.fnDestroy(), n.fnDestroy(), r.fnDestroy(), $("[class*=ColVis]").remove()
	})
}]), App.controller("AlertDemoCtrl", ["$scope", function(e) {
	e.alerts = [{
		type: "danger",
		msg: "Oh snap! Change a few things up and try submitting again."
	}, {
		type: "warning",
		msg: "Well done! You successfully read this important alert message."
	}], e.addAlert = function() {
		e.alerts.push({
			msg: "Another alert!"
		})
	}, e.closeAlert = function(t) {
		e.alerts.splice(t, 1)
	}
}]), App.controller("ButtonsCtrl", ["$scope", function(e) {
	e.singleModel = 1, e.radioModel = "Middle", e.checkModel = {
		left: !1,
		middle: !0,
		right: !1
	}
}]), App.controller("CarouselDemoCtrl", ["$scope", function(e) {
	e.myInterval = 5e3;
	var t = e.slides = [];
	e.addSlide = function() {
		var e = 800 + t.length;
		t.push({
			image: "//placekitten.com/" + e + "/300",
			text: ["More", "Extra", "Lots of", "Surplus"][t.length % 2] + " " + ["Cats", "Kittys", "Felines", "Cutes"][t.length % 2]
		})
	};
	for (var o = 0; 2 > o; o++) e.addSlide()
}]), App.controller("DatepickerDemoCtrl", ["$scope", function(e) {
	e.today = function() {
		e.dt = new Date
	}, e.today(), e.clear = function() {
		e.dt = null
	}, e.disabled = function(e, t) {
		return "day" === t && (0 === e.getDay() || 6 === e.getDay())
	}, e.toggleMin = function() {
		e.minDate = e.minDate ? null : new Date
	}, e.toggleMin(), e.open = function(t) {
		t.preventDefault(), t.stopPropagation(), e.opened = !0
	}, e.dateOptions = {
		formatYear: "yy",
		startingDay: 1
	}, e.initDate = new Date("2016-15-20"), e.formats = ["dd-MMMM-yyyy", "yyyy/MM/dd", "dd.MM.yyyy", "shortDate"], e.format = e.formats[0]
}]), App.controller("DialogIntroCtrl", ["$scope", "ngDialog", "tpl", function(e, t, o) {
	"user strict";
	e.tpl = o, t.open({
		template: o.path,
		className: "ngdialog-theme-default"
	})
}]), App.controller("DialogMainCtrl", ["$scope", "$rootScope", "ngDialog", function(e, t, o) {
	"user strict";
	t.jsonData = '{"foo": "bar"}', t.theme = "ngdialog-theme-default", e.directivePreCloseCallback = function(e) {
		return confirm("Close it? MainCtrl.Directive. (Value = " + e + ")") ? !0 : !1
	}, e.preCloseCallbackOnScope = function(e) {
		return confirm("Close it? MainCtrl.OnScope (Value = " + e + ")") ? !0 : !1
	}, e.open = function() {
		o.open({
			template: "firstDialogId",
			controller: "InsideCtrl",
			data: {
				foo: "some data"
			}
		})
	}, e.openDefault = function() {
		o.open({
			template: "firstDialogId",
			controller: "InsideCtrl",
			className: "ngdialog-theme-default"
		})
	}, e.openDefaultWithPreCloseCallbackInlined = function() {
		o.open({
			template: "firstDialogId",
			controller: "InsideCtrl",
			className: "ngdialog-theme-default",
			preCloseCallback: function(e) {
				return confirm("Close it?  (Value = " + e + ")") ? !0 : !1
			}
		})
	}, e.openConfirm = function() {
		o.openConfirm({
			template: "modalDialogId",
			className: "ngdialog-theme-default"
		}).then(function(e) {
			console.log("Modal promise resolved. Value: ", e)
		}, function(e) {
			console.log("Modal promise rejected. Reason: ", e)
		})
	}, e.openConfirmWithPreCloseCallbackOnScope = function() {
		o.openConfirm({
			template: "modalDialogId",
			className: "ngdialog-theme-default",
			preCloseCallback: "preCloseCallbackOnScope",
			scope: e
		}).then(function(e) {
			console.log("Modal promise resolved. Value: ", e)
		}, function(e) {
			console.log("Modal promise rejected. Reason: ", e)
		})
	}, e.openConfirmWithPreCloseCallbackInlinedWithNestedConfirm = function() {
		o.openConfirm({
			template: "dialogWithNestedConfirmDialogId",
			className: "ngdialog-theme-default",
			preCloseCallback: function() {
				var e = o.openConfirm({
					template: '<p>Are you sure you want to close the parent dialog?</p><div><button type="button" class="btn btn-default" ng-click="closeThisDialog(0)">No<button type="button" class="btn btn-primary" ng-click="confirm(1)">Yes</button></div>',
					plain: !0,
					className: "ngdialog-theme-default"
				});
				return e
			},
			scope: e
		}).then(function(e) {
			console.log("resolved:" + e)
		}, function(e) {
			console.log("rejected:" + e)
		})
	}, e.openInlineController = function() {
		t.theme = "ngdialog-theme-default", o.open({
			template: "withInlineController",
			controller: ["$scope", "$timeout", function(e, t) {
				function o() {
					e.exampleExternalData = "Counter " + n++, a = t(o, 450)
				}
				var a, n = 0;
				o(), e.$on("$destroy", function() {
					t.cancel(a)
				})
			}],
			className: "ngdialog-theme-default"
		})
	}, e.openTemplate = function() {
		e.value = !0, o.open({
			template: e.tpl.path,
			className: "ngdialog-theme-default",
			scope: e
		})
	}, e.openTemplateNoCache = function() {
		e.value = !0, o.open({
			template: e.tpl.path,
			className: "ngdialog-theme-default",
			scope: e,
			cache: !1
		})
	}, e.openTimed = function() {
		var e = o.open({
			template: "<p>Just passing through!</p>",
			plain: !0,
			closeByDocument: !1,
			closeByEscape: !1
		});
		setTimeout(function() {
			e.close()
		}, 2e3)
	}, e.openNotify = function() {
		var e = o.open({
			template: '<p>You can do whatever you want when I close, however that happens.</p><div><button type="button" class="btn btn-primary" ng-click="closeThisDialog(1)">Close Me</button></div>',
			plain: !0
		});
		e.closePromise.then(function(e) {
			console.log("ngDialog closed" + (1 === e.value ? " using the button" : "") + " and notified by promise: " + e.id)
		})
	}, e.openWithoutOverlay = function() {
		o.open({
			template: "<h2>Notice that there is no overlay!</h2>",
			className: "ngdialog-theme-default",
			plain: !0,
			overlay: !1
		})
	}, t.$on("ngDialog.opened", function(e, t) {
		console.log("ngDialog opened: " + t.attr("id"))
	}), t.$on("ngDialog.closed", function(e, t) {
		console.log("ngDialog closed: " + t.attr("id"))
	}), t.$on("ngDialog.closing", function(e, t) {
		console.log("ngDialog closing: " + t.attr("id"))
	})
}]), App.controller("InsideCtrl", ["$scope", "ngDialog", function(e, t) {
	"user strict";
	e.dialogModel = {
		message: "message from passed scope"
	}, e.openSecond = function() {
		t.open({
			template: '<p class="lead m0"><a href="" ng-click="closeSecond()">Close all by click here!</a></h3>',
			plain: !0,
			closeByEscape: !1,
			controller: "SecondModalCtrl"
		})
	}
}]), App.controller("SecondModalCtrl", ["$scope", "ngDialog", function(e, t) {
	"user strict";
	e.closeSecond = function() {
		t.close()
	}
}]), App.controller("FormDemoCtrl", ["$scope", "$resource", function(e, t) {
	"use strict";
	var o = {
		get: {
			method: "GET",
			isArray: !0
		}
	}, a = t("server/cities.json", {}, o);
	a.get(function(t) {
		e.cities = t
	});
	var n = t("server/chosen-states.json", {}, {
		query: {
			method: "GET",
			isArray: !0
		}
	});
	e.states = n.query()
}]), App.controller("PaginationDemoCtrl", ["$scope", function(e) {
	e.totalItems = 64, e.currentPage = 4, e.setPage = function(t) {
		e.currentPage = t
	}, e.pageChanged = function() {
		console.log("Page changed to: " + e.currentPage)
	}, e.maxSize = 5, e.bigTotalItems = 175, e.bigCurrentPage = 1
}]), App.controller("PanelsCtrl", ["$scope", "$timeout", function(e, t) {
	e.$watch("panelDemo1", function(e) {
		console.log("panelDemo1 collapsed: " + e)
	}), e.$on("panel-remove", function(e, t, o) {
		console.log("Panel #" + t + " removing"), o.resolve()
	}), e.$on("panel-removed", function(e, t) {
		console.log("Panel #" + t + " removed")
	}), e.$on("panel-refresh", function(o, a) {
		var n = 3;
		console.log("Refreshing during " + n + "s #" + a), t(function() {
			e.$broadcast("removeSpinner", a), console.log("Refreshed #" + a)
		}, 3e3)
	}), e.panels = [{
		id: "panelRepeat1",
		title: "Panel Title 1",
		body: "Nulla eget lorem leo, sit amet elementum lorem. "
	}, {
		id: "panelRepeat2",
		title: "Panel Title 2",
		body: "Nulla eget lorem leo, sit amet elementum lorem. "
	}, {
		id: "panelRepeat3",
		title: "Panel Title 3",
		body: "Nulla eget lorem leo, sit amet elementum lorem. "
	}]
}]), App.controller("PopoverDemoCtrl", ["$scope", function(e) {
	e.dynamicPopover = "Hello, World!", e.dynamicPopoverTitle = "Title"
}]), App.controller("ProgressDemoCtrl", ["$scope", function(e) {
	e.max = 200, e.random = function() {
		var t, o = Math.floor(100 * Math.random() + 1);
		t = 25 > o ? "success" : 50 > o ? "info" : 75 > o ? "warning" : "danger", e.showWarning = "danger" === t || "warning" === t, e.dynamic = o, e.type = t
	}, e.random(), e.randomStacked = function() {
		e.stacked = [];
		for (var t = ["success", "info", "warning", "danger"], o = 0, a = Math.floor(4 * Math.random() + 1); a > o; o++) {
			var n = Math.floor(4 * Math.random());
			e.stacked.push({
				value: Math.floor(30 * Math.random() + 1),
				type: t[n]
			})
		}
	}, e.randomStacked()
}]), App.controller("RatingDemoCtrl", ["$scope", function(e) {
	e.rate = 7, e.max = 10, e.isReadonly = !1, e.hoveringOver = function(t) {
		e.overStar = t, e.percent = 100 * (t / e.max)
	}, e.ratingStates = [{
		stateOn: "fa fa-check",
		stateOff: "fa fa-check-circle"
	}, {
		stateOn: "fa fa-star",
		stateOff: "fa fa-star-o"
	}, {
		stateOn: "fa fa-heart",
		stateOff: "fa fa-ban"
	}, {
		stateOn: "fa fa-heart"
	}, {
		stateOff: "fa fa-power-off"
	}]
}]), App.controller("TimepickerDemoCtrl", ["$scope", function(e) {
	e.mytime = new Date, e.hstep = 1, e.mstep = 15, e.options = {
		hstep: [1, 2, 3],
		mstep: [1, 5, 10, 15, 25, 30]
	}, e.ismeridian = !0, e.toggleMode = function() {
		e.ismeridian = !e.ismeridian
	}, e.update = function() {
		var t = new Date;
		t.setHours(14), t.setMinutes(0), e.mytime = t
	}, e.changed = function() {
		console.log("Time changed to: " + e.mytime)
	}, e.clear = function() {
		e.mytime = null
	}
}]), App.controller("ToasterDemoCtrl", ["$scope", "toaster", function(e, t) {
	e.toaster = {
		type: "success",
		title: "Title",
		text: "Message"
	}, e.pop = function() {
		t.pop(e.toaster.type, e.toaster.title, e.toaster.text)
	}
}]), App.controller("TooltipDemoCtrl", ["$scope", function(e) {
	e.dynamicTooltip = "Hello, World!", e.dynamicTooltipText = "dynamic", e.htmlTooltip = "I've been made <b>bold</b>!"
}]), App.controller("TypeaheadCtrl", ["$scope", "$http", function(e, t) {
	e.selected = void 0, e.states = ["Alabama", "Alaska", "Arizona", "Arkansas", "California", "Colorado", "Connecticut", "Delaware", "Florida", "Georgia", "Hawaii", "Idaho", "Illinois", "Indiana", "Iowa", "Kansas", "Kentucky", "Louisiana", "Maine", "Maryland", "Massachusetts", "Michigan", "Minnesota", "Mississippi", "Missouri", "Montana", "Nebraska", "Nevada", "New Hampshire", "New Jersey", "New Mexico", "New York", "North Dakota", "North Carolina", "Ohio", "Oklahoma", "Oregon", "Pennsylvania", "Rhode Island", "South Carolina", "South Dakota", "Tennessee", "Texas", "Utah", "Vermont", "Virginia", "Washington", "West Virginia", "Wisconsin", "Wyoming"], e.getLocation = function(e) {
		return t.get("//maps.googleapis.com/maps/api/geocode/json", {
			params: {
				address: e,
				sensor: !1
			}
		}).then(function(e) {
			var t = [];
			return angular.forEach(e.data.results, function(e) {
				t.push(e.formatted_address)
			}), t
		})
	}, e.statesWithFlags = [{
		name: "Alabama",
		flag: "5/5c/Flag_of_Alabama.svg/45px-Flag_of_Alabama.svg.png"
	}, {
		name: "Alaska",
		flag: "e/e6/Flag_of_Alaska.svg/43px-Flag_of_Alaska.svg.png"
	}, {
		name: "Arizona",
		flag: "9/9d/Flag_of_Arizona.svg/45px-Flag_of_Arizona.svg.png"
	}, {
		name: "Arkansas",
		flag: "9/9d/Flag_of_Arkansas.svg/45px-Flag_of_Arkansas.svg.png"
	}, {
		name: "California",
		flag: "0/01/Flag_of_California.svg/45px-Flag_of_California.svg.png"
	}, {
		name: "Colorado",
		flag: "4/46/Flag_of_Colorado.svg/45px-Flag_of_Colorado.svg.png"
	}, {
		name: "Connecticut",
		flag: "9/96/Flag_of_Connecticut.svg/39px-Flag_of_Connecticut.svg.png"
	}, {
		name: "Delaware",
		flag: "c/c6/Flag_of_Delaware.svg/45px-Flag_of_Delaware.svg.png"
	}, {
		name: "Florida",
		flag: "f/f7/Flag_of_Florida.svg/45px-Flag_of_Florida.svg.png"
	}, {
		name: "Georgia",
		flag: "5/54/Flag_of_Georgia_%28U.S._state%29.svg/46px-Flag_of_Georgia_%28U.S._state%29.svg.png"
	}, {
		name: "Hawaii",
		flag: "e/ef/Flag_of_Hawaii.svg/46px-Flag_of_Hawaii.svg.png"
	}, {
		name: "Idaho",
		flag: "a/a4/Flag_of_Idaho.svg/38px-Flag_of_Idaho.svg.png"
	}, {
		name: "Illinois",
		flag: "0/01/Flag_of_Illinois.svg/46px-Flag_of_Illinois.svg.png"
	}, {
		name: "Indiana",
		flag: "a/ac/Flag_of_Indiana.svg/45px-Flag_of_Indiana.svg.png"
	}, {
		name: "Iowa",
		flag: "a/aa/Flag_of_Iowa.svg/44px-Flag_of_Iowa.svg.png"
	}, {
		name: "Kansas",
		flag: "d/da/Flag_of_Kansas.svg/46px-Flag_of_Kansas.svg.png"
	}, {
		name: "Kentucky",
		flag: "8/8d/Flag_of_Kentucky.svg/46px-Flag_of_Kentucky.svg.png"
	}, {
		name: "Louisiana",
		flag: "e/e0/Flag_of_Louisiana.svg/46px-Flag_of_Louisiana.svg.png"
	}, {
		name: "Maine",
		flag: "3/35/Flag_of_Maine.svg/45px-Flag_of_Maine.svg.png"
	}, {
		name: "Maryland",
		flag: "a/a0/Flag_of_Maryland.svg/45px-Flag_of_Maryland.svg.png"
	}, {
		name: "Massachusetts",
		flag: "f/f2/Flag_of_Massachusetts.svg/46px-Flag_of_Massachusetts.svg.png"
	}, {
		name: "Michigan",
		flag: "b/b5/Flag_of_Michigan.svg/45px-Flag_of_Michigan.svg.png"
	}, {
		name: "Minnesota",
		flag: "b/b9/Flag_of_Minnesota.svg/46px-Flag_of_Minnesota.svg.png"
	}, {
		name: "Mississippi",
		flag: "4/42/Flag_of_Mississippi.svg/45px-Flag_of_Mississippi.svg.png"
	}, {
		name: "Missouri",
		flag: "5/5a/Flag_of_Missouri.svg/46px-Flag_of_Missouri.svg.png"
	}, {
		name: "Montana",
		flag: "c/cb/Flag_of_Montana.svg/45px-Flag_of_Montana.svg.png"
	}, {
		name: "Nebraska",
		flag: "4/4d/Flag_of_Nebraska.svg/46px-Flag_of_Nebraska.svg.png"
	}, {
		name: "Nevada",
		flag: "f/f1/Flag_of_Nevada.svg/45px-Flag_of_Nevada.svg.png"
	}, {
		name: "New Hampshire",
		flag: "2/28/Flag_of_New_Hampshire.svg/45px-Flag_of_New_Hampshire.svg.png"
	}, {
		name: "New Jersey",
		flag: "9/92/Flag_of_New_Jersey.svg/45px-Flag_of_New_Jersey.svg.png"
	}, {
		name: "New Mexico",
		flag: "c/c3/Flag_of_New_Mexico.svg/45px-Flag_of_New_Mexico.svg.png"
	}, {
		name: "New York",
		flag: "1/1a/Flag_of_New_York.svg/46px-Flag_of_New_York.svg.png"
	}, {
		name: "North Carolina",
		flag: "b/bb/Flag_of_North_Carolina.svg/45px-Flag_of_North_Carolina.svg.png"
	}, {
		name: "North Dakota",
		flag: "e/ee/Flag_of_North_Dakota.svg/38px-Flag_of_North_Dakota.svg.png"
	}, {
		name: "Ohio",
		flag: "4/4c/Flag_of_Ohio.svg/46px-Flag_of_Ohio.svg.png"
	}, {
		name: "Oklahoma",
		flag: "6/6e/Flag_of_Oklahoma.svg/45px-Flag_of_Oklahoma.svg.png"
	}, {
		name: "Oregon",
		flag: "b/b9/Flag_of_Oregon.svg/46px-Flag_of_Oregon.svg.png"
	}, {
		name: "Pennsylvania",
		flag: "f/f7/Flag_of_Pennsylvania.svg/45px-Flag_of_Pennsylvania.svg.png"
	}, {
		name: "Rhode Island",
		flag: "f/f3/Flag_of_Rhode_Island.svg/32px-Flag_of_Rhode_Island.svg.png"
	}, {
		name: "South Carolina",
		flag: "6/69/Flag_of_South_Carolina.svg/45px-Flag_of_South_Carolina.svg.png"
	}, {
		name: "South Dakota",
		flag: "1/1a/Flag_of_South_Dakota.svg/46px-Flag_of_South_Dakota.svg.png"
	}, {
		name: "Tennessee",
		flag: "9/9e/Flag_of_Tennessee.svg/46px-Flag_of_Tennessee.svg.png"
	}, {
		name: "Texas",
		flag: "f/f7/Flag_of_Texas.svg/45px-Flag_of_Texas.svg.png"
	}, {
		name: "Utah",
		flag: "f/f6/Flag_of_Utah.svg/45px-Flag_of_Utah.svg.png"
	}, {
		name: "Vermont",
		flag: "4/49/Flag_of_Vermont.svg/46px-Flag_of_Vermont.svg.png"
	}, {
		name: "Virginia",
		flag: "4/47/Flag_of_Virginia.svg/44px-Flag_of_Virginia.svg.png"
	}, {
		name: "Washington",
		flag: "5/54/Flag_of_Washington.svg/46px-Flag_of_Washington.svg.png"
	}, {
		name: "West Virginia",
		flag: "2/22/Flag_of_West_Virginia.svg/46px-Flag_of_West_Virginia.svg.png"
	}, {
		name: "Wisconsin",
		flag: "2/22/Flag_of_Wisconsin.svg/45px-Flag_of_Wisconsin.svg.png"
	}, {
		name: "Wyoming",
		flag: "b/bc/Flag_of_Wyoming.svg/43px-Flag_of_Wyoming.svg.png"
	}]
}]), App.controller("FileUploadController", ["$scope", function(e) {
	"use strict";
	e.fileUploadList = [{
		file: "some-file.txt"
	}], e.removeFile = function(t) {
		e.fileUploadList.splice(t, 1)
	}, angular.element(document).ready(function() {
		{
			var t = $("#progressbar"),
				o = t.find(".progress-bar"),
				a = {
					action: "server/upload.php",
					allow: "*.(jpg|jpeg|gif|png)",
					param: "upfile",
					loadstart: function() {
						o.css("width", "0%").text("0%"), t.removeClass("hidden")
					},
					progress: function(e) {
						e = Math.ceil(e), o.css("width", e + "%").text(e + "%")
					},
					allcomplete: function(a) {
						var n = a && angular.fromJson(a);
						o.css("width", "100%").text("100%"), setTimeout(function() {
							t.addClass("hidden")
						}, 250), n && n.file && e.$apply(function() {
							e.fileUploadList.push(n)
						})
					}
				};
			new $.upload.select($("#upload-select"), a), new $.upload.drop($("#upload-drop"), a)
		}
	})
}]), App.controller("FlotChartController", ["$scope", "$window", "$http", function(e, t, o) {
	"use strict";
	t.FlotChart = function(e, t) {
		this.element = $(e), this.url = t, this.requestData = function(e, t, a) {
			var n = this;
			return a = t && $.isFunction(t) ? t : a, t = t && "string" == typeof t ? t : "GET", n.option = e, o({
				url: n.url,
				cache: !1,
				method: t
			}).success(function(t) {
				$.plot(n.element, t, e), a && a()
			}).error(function() {
				$.error("Bad chart request.")
			}), this
		}, this.listen = function() {
			var e = this,
				t = this.element.parents(".panel").eq(0);
			return t.on("panel-refresh", function(t, o) {
				e.requestData(e.option, function() {
					o.removeSpinner()
				})
			}), this
		}
	}, angular.element(document).ready(function() {
		! function() {
			var t = ".chart-bar";
			$(t).each(function() {
				var t = $(this).data("source") || $.error("Bar: No source defined."),
					o = new FlotChart(this, t),
					a = {
						series: {
							bars: {
								align: "center",
								lineWidth: 0,
								show: !0,
								barWidth: .6,
								fill: .9
							}
						},
						grid: {
							borderColor: "#eee",
							borderWidth: 1,
							hoverable: !0,
							backgroundColor: "#fcfcfc"
						},
						tooltip: !0,
						tooltipOpts: {
							content: function(e, t, o) {
								return t + " : " + o
							}
						},
						xaxis: {
							tickColor: "#fcfcfc",
							mode: "categories"
						},
						yaxis: {
							position: e.app.layout.isRTL ? "right" : "left",
							tickColor: "#eee"
						},
						shadowSize: 0
					};
				o.requestData(a)
			})
		}(),
		function() {
			var t = ".chart-bar-stacked";
			$(t).each(function() {
				var t = $(this).data("source") || $.error("Bar Stacked: No source defined."),
					o = new FlotChart(this, t),
					a = {
						series: {
							stack: !0,
							bars: {
								align: "center",
								lineWidth: 0,
								show: !0,
								barWidth: .6,
								fill: .9
							}
						},
						grid: {
							borderColor: "#eee",
							borderWidth: 1,
							hoverable: !0,
							backgroundColor: "#fcfcfc"
						},
						tooltip: !0,
						tooltipOpts: {
							content: function(e, t, o) {
								return t + " : " + o
							}
						},
						xaxis: {
							tickColor: "#fcfcfc",
							mode: "categories"
						},
						yaxis: {
							position: e.app.layout.isRTL ? "right" : "left",
							tickColor: "#eee"
						},
						shadowSize: 0
					};
				o.requestData(a)
			})
		}(),
		function() {
			var t = ".chart-spline";
			$(t).each(function() {
				var t = $(this).data("source") || $.error("Spline: No source defined."),
					o = new FlotChart(this, t),
					a = {
						series: {
							lines: {
								show: !1
							},
							points: {
								show: !0,
								radius: 4
							},
							splines: {
								show: !0,
								tension: .4,
								lineWidth: 1,
								fill: .5
							}
						},
						grid: {
							borderColor: "#eee",
							borderWidth: 1,
							hoverable: !0,
							backgroundColor: "#fcfcfc"
						},
						tooltip: !0,
						tooltipOpts: {
							content: function(e, t, o) {
								return t + " : " + o
							}
						},
						xaxis: {
							tickColor: "#fcfcfc",
							mode: "categories"
						},
						yaxis: {
							min: 0,
							tickColor: "#eee",
							position: e.app.layout.isRTL ? "right" : "left",
							tickFormatter: function(e) {
								return e
							}
						},
						shadowSize: 0
					};
				o.requestData(a).listen()
			})
		}(),
		function() {
			var t = ".chart-area";
			$(t).each(function() {
				var t = $(this).data("source") || $.error("Area: No source defined."),
					o = new FlotChart(this, t),
					a = {
						series: {
							lines: {
								show: !0,
								fill: .8
							},
							points: {
								show: !0,
								radius: 4
							}
						},
						grid: {
							borderColor: "#eee",
							borderWidth: 1,
							hoverable: !0,
							backgroundColor: "#fcfcfc"
						},
						tooltip: !0,
						tooltipOpts: {
							content: function(e, t, o) {
								return t + " : " + o
							}
						},
						xaxis: {
							tickColor: "#fcfcfc",
							mode: "categories"
						},
						yaxis: {
							min: 0,
							tickColor: "#eee",
							position: e.app.layout.isRTL ? "right" : "left",
							tickFormatter: function(e) {
								return e + " visitors"
							}
						},
						shadowSize: 0
					};
				o.requestData(a).listen()
			})
		}(),
		function() {
			var t = ".chart-line";
			$(t).each(function() {
				var t = $(this).data("source") || $.error("Line: No source defined."),
					o = new FlotChart(this, t),
					a = {
						series: {
							lines: {
								show: !0,
								fill: .01
							},
							points: {
								show: !0,
								radius: 4
							}
						},
						grid: {
							borderColor: "#eee",
							borderWidth: 1,
							hoverable: !0,
							backgroundColor: "#fcfcfc"
						},
						tooltip: !0,
						tooltipOpts: {
							content: function(e, t, o) {
								return t + " : " + o
							}
						},
						xaxis: {
							tickColor: "#eee",
							mode: "categories"
						},
						yaxis: {
							position: e.app.layout.isRTL ? "right" : "left",
							tickColor: "#eee"
						},
						shadowSize: 0
					};
				o.requestData(a)
			})
		}(),
		function() {
			var e = ".chart-pie";
			$(e).each(function() {
				var e = $(this).data("source") || $.error("Pie: No source defined."),
					t = new FlotChart(this, e),
					o = {
						series: {
							pie: {
								show: !0,
								innerRadius: 0,
								label: {
									show: !0,
									radius: .8,
									formatter: function(e, t) {
										return '<div class="flot-pie-label">' + Math.round(t.percent) + "%</div>"
									},
									background: {
										opacity: .8,
										color: "#222"
									}
								}
							}
						}
					};
				t.requestData(o)
			})
		}(),
		function() {
			var e = ".chart-donut";
			$(e).each(function() {
				var e = $(this).data("source") || $.error("Donut: No source defined."),
					t = new FlotChart(this, e),
					o = {
						series: {
							pie: {
								show: !0,
								innerRadius: .5
							}
						}
					};
				t.requestData(o)
			})
		}()
	})
}]), App.controller("MailboxController", ["$scope", "colors", function(e) {
	e.folders = [{
		name: "Inbox",
		folder: "",
		alert: 42,
		icon: "fa-inbox"
	}, {
		name: "Starred",
		folder: "starred",
		alert: 10,
		icon: "fa-star"
	}, {
		name: "Sent",
		folder: "sent",
		alert: 0,
		icon: "fa-paper-plane-o"
	}, {
		name: "Draft",
		folder: "draft",
		alert: 5,
		icon: "fa-edit"
	}, {
		name: "Trash",
		folder: "trash",
		alert: 0,
		icon: "fa-trash"
	}], e.labels = [{
		name: "Red",
		color: "danger"
	}, {
		name: "Pink",
		color: "pink"
	}, {
		name: "Blue",
		color: "info"
	}, {
		name: "Yellow",
		color: "warning"
	}], e.mail = {
		cc: !1,
		bcc: !1
	}, e.content = "<p>Type something..</p>"
}]), App.controller("MailFolderController", ["$scope", "mails", "$stateParams", function(e, t, o) {
	e.folder = o.folder, t.all().then(function(t) {
		e.mails = t
	})
}]), App.controller("MailViewController", ["$scope", "mails", "$stateParams", function(e, t, o) {
	t.get(o.mid).then(function(t) {
		e.mail = t
	})
}]), App.factory("mails", ["$http", function(e) {
	var t = "server/mails.json",
		o = e.get(t).then(function(e) {
			return e.data.mails
		}),
		a = {};
	return a.all = function() {
		return o
	}, a.get = function(e) {
		return o.then(function(t) {
			for (var o = 0; o < t.length; o++) if (t[o].id == e) return t[o];
			return null
		})
	}, a
}]), App.controller("AppController", ["$rootScope", "$scope", "$state", "$translate", "$window", "$localStorage", "$timeout", "toggleStateService", "colors", "browser", "cfpLoadingBar", function(e, t, o, a, n, r, l, i, s, c, u) {
	"use strict";
	var d;
	e.$on("$stateChangeStart", function() {
		$(".wrapper > section").length && (d = l(function() {
			u.start()
		}, 0))
	}), e.$on("$stateChangeSuccess", function(e) {
		e.targetScope.$watch("$viewContentLoaded", function() {
			l.cancel(d), u.complete()
		})
	}), e.$on("$stateNotFound", function(e, t) {
		console.log(t.to), console.log(t.toParams), console.log(t.options)
	}), e.$on("$stateChangeError", function(e, t, o, a, n, r) {
		console.log(r)
	}), e.$on("$stateChangeSuccess", function() {
		n.scrollTo(0, 0), e.currTitle = o.current.title
	}), e.currTitle = o.current.title, e.pageTitle = function() {
		return e.app.name + " - " + (e.currTitle || e.app.description)
	}, e.$watch("app.layout.isCollapsed", function(t) {
		t === !1 && e.$broadcast("closeSidebarMenu")
	}), angular.isDefined(r.layout) ? t.app.layout = r.layout : r.layout = t.app.layout, e.$watch("app.layout", function() {
		r.layout = t.app.layout
	}, !0), t.colorByName = s.byName, t.toggleUserBlock = function() {
		t.$broadcast("toggleUserBlock")
	}, t.language = {
		listIsOpen: !1,
		available: {
			en: "English",
			es_AR: "Español"
		},
		init: function() {
			var e = a.proposedLanguage() || a.use(),
				o = a.preferredLanguage();
			t.language.selected = t.language.available[e || o]
		},
		set: function(e) {
			a.use(e), t.language.selected = t.language.available[e], t.language.listIsOpen = !t.language.listIsOpen
		}
	}, t.language.init(), i.restoreState($(document.body)), l(function() {
		e.mainViewAnimation = e.app.viewAnimation
	}), e.cancel = function(e) {
		e.stopPropagation()
	}
}]), App.controller("ModalGmapController", ["$scope", "$modal", "$timeout", "gmap", function(e, t, o) {
	e.open = function(e) {
		t.open({
			templateUrl: "/myModalContent.html",
			controller: a,
			size: e
		})
	};
	var a = function(e, t) {
		t.opened.then(function() {
			o(function() {
				e.initGmap = !0
			})
		}), e.ok = function() {
			t.close("closed")
		}, e.cancel = function() {
			t.dismiss("cancel")
		}
	};
	a.$inject = ["$scope", "$modalInstance"]
}]), App.controller("ModalController", ["$scope", "$modal", function(e, t) {
	e.open = function(e) {
		var a = t.open({
			templateUrl: "/myModalContent.html",
			controller: o,
			size: e
		}),
			n = $("#modal-state");
		a.result.then(function() {
			n.text("Modal dismissed with OK status")
		}, function() {
			n.text("Modal dismissed with Cancel status")
		})
	};
	var o = function(e, t) {
		e.ok = function() {
			t.close("closed")
		}, e.cancel = function() {
			t.dismiss("cancel")
		}
	};
	o.$inject = ["$scope", "$modalInstance"]
}]), App.controller("NGTableCtrl", NGTableCtrl), NGTableCtrl.$inject = ["$scope", "$filter", "ngTableParams", "$resource", "$timeout", "ngTableDataService"], App.service("ngTableDataService", function() {
	var e = {
		cache: null,
		getData: function(t, o, a) {
			function n(t, o) {
				var a = (o.page() - 1) * o.count(),
					n = o.page() * o.count(),
					r = e.cache.result.slice(a, n);
				o.total(e.cache.total), t.resolve(r)
			}
			e.cache ? n(t, o) : a && a.get(function(a) {
				e.cache = a, n(t, o)
			})
		}
	};
	return e
}), App.controller("NotificationController", ["$scope", function(e) {
	function t(e) {
		for (var t = e.offsetTop, o = 40; e.offsetParent;) e = e.offsetParent, t += e.offsetTop;
		return t - o - window.pageYOffset
	}
	function o(e) {
		for (var t = e.offsetLeft, o = e.offsetWidth; e.offsetParent;) e = e.offsetParent, t += e.offsetLeft;
		return t - o - window.pageXOffset
	}
	e.autoplace = function(e, a) {
		var n = "top";
		return t(a) < 0 && (n = "bottom"), o(a) < 0 && (n = "right"), n
	}
}]), App.controller("portletsController", ["$scope", "$timeout", "$window", function(e, t) {
	"use strict";

	function o(t) {
		var o = t.target,
			a = angular.fromJson(e.$storage[l]);
		a || (a = {}), a[o.id] = $(o).sortable("toArray"), e.$storage[l] = angular.toJson(a), n.apply(o)
	}
	function a(t) {
		var o = t.target,
			a = angular.fromJson(e.$storage[l]);
		if (a) {
			var r = o.id,
				i = a[r];
			if (i) {
				var s = $("#" + r);
				$.each(i, function(e, t) {
					$("#" + t).appendTo(s)
				})
			}
		}
		n.apply(o)
	}
	function n() {
		var e = $(this);
		e.css("min-height", e.height())
	}
	if ($.fn.sortable) {
		var r = "[portlet]",
			l = "portletState";
		angular.element(document).ready(function() {
			t(function() {
				$(r).sortable({
					connectWith: r,
					items: "div.panel",
					handle: ".portlet-handler",
					opacity: .7,
					placeholder: "portlet box-placeholder",
					cancel: ".portlet-cancel",
					forcePlaceholderSize: !0,
					iframeFix: !1,
					tolerance: "pointer",
					helper: "original",
					revert: 200,
					forceHelperSize: !0,
					start: n,
					update: o,
					create: a
				})
			}, 0)
		})
	}
}]), App.controller("SidebarController", ["$rootScope", "$scope", "$state", "$location", "$http", "$timeout", "APP_MEDIAQUERY", function(e, t, o, a, n, r, l) {
	function i() {
		return u.width() < l.tablet
	}
	function s() {
		return d.hasClass("aside-collapsed")
	}
	var c = e.$state.current.name,
		u = $(window),
		d = ($("html"), $("body"));
	e.$on("$stateChangeStart", function(t, o) {
		c = o.name, $("body.aside-toggled").removeClass("aside-toggled"), e.$broadcast("closeSidebarMenu")
	}), u.on("resize", function() {
		d.removeClass(i() ? "aside-collapsed" : "aside-toggled")
	});
	var p = function(e) {
		if (e) {
			if (e.sref && "#" != e.sref) return o.is(e.sref) || o.includes(e.sref);
			var t = !1;
			return angular.forEach(e.submenu, function(e) {
				p(e) && (t = !0)
			}), t
		}
	};
	t.getMenuItemPropClasses = function(e) {
		return (e.heading ? "nav-heading" : "") + (p(e) ? " active" : "")
	}, t.loadSidebarMenu = function() {
		var t = "server/sidebar-menu.json",
			o = t + "?v=" + (new Date).getTime();
		n.get(o).success(function(t) {
			e.menuItems = t
		}).error(function() {
			alert("Failure loading menu")
		})
	}, t.loadSidebarMenu();
	var f = [];
	t.addCollapse = function(e, t) {
		f[e] = !p(t)
	}, t.isCollapse = function(e) {
		return f[e]
	}, t.toggleCollapse = function(e, t) {
		function o(e) {
			e += "";
			for (var t in f)(0 > e || e.indexOf(t) < 0) && (f[t] = !0)
		}
		return s() && !i() ? !0 : (angular.isDefined(f[e]) ? (f[e] = !f[e], o(e)) : t && o(-1), !0)
	}
}]), App.controller("TodoController", ["$scope", "$filter", function(e, t) {
	e.items = [{
		todo: {
			title: "Meeting with Mark at 7am.",
			description: "Pellentesque convallis mauris eu elit imperdiet quis eleifend quam aliquet. "
		},
		complete: !0
	}, {
		todo: {
			title: "Call Sonya. Talk about the new project.",
			description: ""
		},
		complete: !1
	}, {
		todo: {
			title: "Find a new place for vacations",
			description: ""
		},
		complete: !1
	}], e.editingTodo = !1, e.todo = {}, e.addTodo = function() {
		"" !== e.todo.title && (e.todo.description || (e.todo.description = ""), e.editingTodo ? (e.todo = {}, e.editingTodo = !1) : (e.items.push({
			todo: angular.copy(e.todo),
			complete: !1
		}), e.todo.title = "", e.todo.description = ""))
	}, e.editTodo = function(t, o) {
		o.stopPropagation(), e.todo = e.items[t].todo, e.editingTodo = !0
	}, e.removeTodo = function(t) {
		e.items.splice(t, 1)
	}, e.clearAll = function() {
		e.items = []
	}, e.totalCompleted = function() {
		return t("filter")(e.items, function(e) {
			return e.complete
		}).length
	}, e.totalPending = function() {
		return t("filter")(e.items, function(e) {
			return !e.complete
		}).length
	}
}]),
function(e, t, o) {
	"use strict";

	function a(t, o) {
		function r(t, o) {
			var a = new FormData,
				n = new XMLHttpRequest;
			if (o.before(o, t) !== !1) {
				for (var r, l = 0; r = t[l]; l++) a.append(o.param, r);
				for (var i in o.params) a.append(i, o.params[i]);
				n.upload.addEventListener("progress", function(e) {
					var t = e.loaded / e.total * 100;
					o.progress(t, e)
				}, !1), n.addEventListener("loadstart", function(e) {
					o.loadstart(e)
				}, !1), n.addEventListener("load", function(e) {
					o.load(e)
				}, !1), n.addEventListener("loadend", function(e) {
					o.loadend(e)
				}, !1), n.addEventListener("error", function(e) {
					o.error(e)
				}, !1), n.addEventListener("abort", function(e) {
					o.abort(e)
				}, !1), n.open(o.method, o.action, !0), n.onreadystatechange = function() {
					if (o.readystatechange(n), 4 == n.readyState) {
						var t = n.responseText;
						if ("json" == o.type) try {
							t = e.parseJSON(t)
						} catch (a) {
							t = !1
						}
						o.complete(t, n)
					}
				}, n.send(a)
			}
		}
		if (!e.support.ajaxupload) return this;
		if (o = e.extend({}, a.defaults, o), t.length) {
			if ("*.*" !== o.allow) for (var l, i = 0; l = t[i]; i++) if (!n(o.allow, l.name)) return void("string" == typeof o.notallowed ? alert(o.notallowed) : o.notallowed(l, o));
			var s = o.complete;
			if (o.single) {
				var c = t.length,
					u = 0;
				o.complete = function(e, a) {
					u += 1, s(e, a), c > u ? r([t[u]], o) : o.allcomplete(e, a)
				}, r([t[0]], o)
			} else o.complete = function(e, t) {
				s(e, t), o.allcomplete(e, t)
			}, r(t, o)
		}
	}
	function n(e, t) {
		var o = "^" + e.replace(/\//g, "\\/").replace(/\*\*/g, "(\\/[^\\/]+)*").replace(/\*/g, "[^\\/]+").replace(/((?!\\))\?/g, "$1.") + "$";
		return o = "^" + o + "$", null !== t.match(new RegExp(o))
	}
	var r = function(t, o) {
		var n = this,
			l = e(t);
		o = e.extend({}, a.defaults, r.defaults, o), l.data("uploadSelect") || (this.element = l.on("change", function() {
			a(n.element[0].files, o)
		}), l.data("uploadSelect", this))
	};
	r.defaults = {};
	var l = function(t, o) {
		var n = e(t),
			r = !1;
		o = e.extend({}, a.defaults, l.defaults, o), n.data("uploadDrop") || (n.on("drop", function(e) {
			e.dataTransfer && e.dataTransfer.files && (e.stopPropagation(), e.preventDefault(), n.removeClass(o.dragoverClass), a(e.dataTransfer.files, o))
		}).on("dragenter", function(e) {
			e.stopPropagation(), e.preventDefault()
		}).on("dragover", function(e) {
			e.stopPropagation(), e.preventDefault(), r || (n.addClass(o.dragoverClass), r = !0)
		}).on("dragleave", function(e) {
			e.stopPropagation(), e.preventDefault(), n.removeClass(o.dragoverClass), r = !1
		}), n.data("uploadDrop", this))
	};
	return l.defaults = {
		dragoverClass: "dragover"
	}, e.upload = {
		select: r,
		drop: l
	}, e.support.ajaxupload = function() {
		function e() {
			var e = o.createElement("INPUT");
			return e.type = "file", "files" in e
		}
		function a() {
			var e = new XMLHttpRequest;
			return !!(e && "upload" in e && "onprogress" in e.upload)
		}
		function n() {
			return !!t.FormData
		}
		return e() && a() && n()
	}(), e.support.ajaxupload && e.event.props.push("dataTransfer"), a.defaults = {
		action: "",
		single: !0,
		method: "POST",
		param: "files[]",
		params: {},
		allow: "*.*",
		type: "text",
		before: function() {},
		loadstart: function() {},
		load: function() {},
		loadend: function() {},
		error: function() {},
		abort: function() {},
		progress: function() {},
		complete: function() {},
		allcomplete: function() {},
		readystatechange: function() {},
		notallowed: function(e, t) {
			alert("Only the following file types are allowed: " + t.allow)
		}
	}, e.xhrupload = a, a
}(jQuery, window, document), App.controller("UserBlockController", ["$scope", function(e) {
	e.userBlockVisible = !0, e.$on("toggleUserBlock", function() {
		e.userBlockVisible = !e.userBlockVisible
	})
}]), App.controller("VectorMapController", ["$scope", function(e) {
	"use strict";
	e.seriesData = {
		CA: 11100,
		DE: 2510,
		FR: 3710,
		AU: 5710,
		GB: 8310,
		RU: 9310,
		BR: 6610,
		IN: 7810,
		CN: 4310,
		US: 839,
		SA: 410
	}, e.markersData = [{
		latLng: [41.9, 12.45],
		name: "Vatican City"
	}, {
		latLng: [43.73, 7.41],
		name: "Monaco"
	}, {
		latLng: [-.52, 166.93],
		name: "Nauru"
	}, {
		latLng: [-8.51, 179.21],
		name: "Tuvalu"
	}, {
		latLng: [7.11, 171.06],
		name: "Marshall Islands"
	}, {
		latLng: [17.3, -62.73],
		name: "Saint Kitts and Nevis"
	}, {
		latLng: [3.2, 73.22],
		name: "Maldives"
	}, {
		latLng: [35.88, 14.5],
		name: "Malta"
	}, {
		latLng: [41, -71.06],
		name: "New England"
	}, {
		latLng: [12.05, -61.75],
		name: "Grenada"
	}, {
		latLng: [13.16, -59.55],
		name: "Barbados"
	}, {
		latLng: [17.11, -61.85],
		name: "Antigua and Barbuda"
	}, {
		latLng: [-4.61, 55.45],
		name: "Seychelles"
	}, {
		latLng: [7.35, 134.46],
		name: "Palau"
	}, {
		latLng: [42.5, 1.51],
		name: "Andorra"
	}]
}]), App.directive("href", function() {
	return {
		restrict: "A",
		compile: function(e, t) {
			return function(e, o) {
				(t.ngClick || "" === t.href || "#" === t.href) && (o.hasClass("dropdown-toggle") || o.on("click", function(e) {
					e.preventDefault(), e.stopPropagation()
				}))
			}
		}
	}
}), App.directive("animateEnabled", ["$animate", function(e) {
	return {
		link: function(t, o, a) {
			t.$watch(function() {
				return t.$eval(a.animateEnabled, t)
			}, function(t) {
				e.enabled( !! t, o)
			})
		}
	}
}]), App.directive("classyloader", ["$timeout", function(e) {
	"use strict";
	var t = $(window),
		o = "js-is-in-view";
	return {
		restrict: "A",
		link: function(a, n) {
			function r(e, t) {
				var a = -20;
				!e.hasClass(o) && $.Utils.isInView(e, {
					topoffset: a
				}) && l(e, t)
			}
			function l(e, t) {
				e.ClassyLoader(t).addClass(o)
			}
			e(function() {
				var e = $(n),
					o = e.data();
				o && (o.triggerInView ? (t.scroll(function() {
					r(e, o)
				}), r(e, o)) : l(e, o))
			}, 0)
		}
	}
}]), App.directive("resetKey", ["$state", "$rootScope", function(e, t) {
	"use strict";
	return {
		restrict: "A",
		scope: {
			resetKey: "="
		},
		link: function(e, t, o) {
			e.resetKey = o.resetKey
		},
		controller: ["$scope", "$element", function(o, a) {
			a.on("click", function(a) {
				a.preventDefault(), o.resetKey ? (delete t.$storage[o.resetKey], e.go(e.current, {}, {
					reload: !0
				})) : $.error("No storage key specified for reset.")
			})
		}]
	}
}]), App.directive("filestyle", function() {
	return {
		restrict: "A",
		controller: ["$scope", "$element", function(e, t) {
			var o = $(t);
			o.filestyle({
				classInput: o.data("classinput")
			})
		}]
	}
}), App.directive("flatdoc", ["$location", function() {
	return {
		restrict: "EA",
		template: "<div role='flatdoc'><div role='flatdoc-menu'></div><div role='flatdoc-content'></div></div>",
		link: function(e, t, o) {
			Flatdoc.run({
				fetcher: Flatdoc.file(o.src)
			});
			var a = $("html, body");
			$(document).on("flatdoc:ready", function() {
				var e = $('[role="flatdoc-menu"]');
				e.find("a").on("click", function(t) {
					t.preventDefault(), t.stopPropagation();
					var o = $(this);
					e.find("a.active").removeClass("active"), o.addClass("active"), a.animate({
						scrollTop: $(this.getAttribute("href")).offset().top - ($(".topnavbar").height() + 10)
					}, 800)
				})
			})
		}
	}
}]), App.directive("formWizard", ["$parse", function(e) {
	"use strict";

	function t(e, t, o) {
		var a = this;
		a.quantity = parseInt(e, 10), a.validate = t, a.element = o, a.init = function() {
			return a.createsteps(a.quantity), a.go(1), a
		}, a.go = function(e) {
			if (angular.isDefined(a.steps[e])) {
				if (a.validate && 1 !== e) {
					var t = $(a.element),
						o = t.children().children("div").get(e - 2);
					if (!1 === t.parsley().validate(o.id)) return !1
				}
				a.cleanall(), a.steps[e] = !0
			}
		}, a.active = function(e) {
			return !!a.steps[e]
		}, a.cleanall = function() {
			for (var e in a.steps) a.steps[e] = !1
		}, a.createsteps = function(e) {
			a.steps = [];
			for (var t = 1; e >= t; t++) a.steps[t] = !1
		}
	}
	return {
		restrict: "EA",
		scope: !0,
		link: function(o, a, n) {
			var r = e(n.validateSteps)(o),
				l = new t(n.steps, !! r, a);
			o.wizard = l.init()
		}
	}
}]), App.directive("toggleFullscreen", function() {
	"use strict";
	return {
		restrict: "A",
		link: function(e, t) {
			t.on("click", function(e) {
				e.preventDefault(), screenfull.enabled ? (screenfull.toggle(), screenfull.isFullscreen ? $(this).children("em").removeClass("fa-expand").addClass("fa-compress") : $(this).children("em").removeClass("fa-compress").addClass("fa-expand")) : $.error("Fullscreen not enabled")
			})
		}
	}
}), App.directive("gmap", ["$window", "gmap", function(e, t) {
	"use strict";
	var o = [{
		featureType: "water",
		stylers: [{
			visibility: "on"
		}, {
			color: "#bdd1f9"
		}]
	}, {
		featureType: "all",
		elementType: "labels.text.fill",
		stylers: [{
			color: "#334165"
		}]
	}, {
		featureType: "landscape",
		stylers: [{
			color: "#e9ebf1"
		}]
	}, {
		featureType: "road.highway",
		elementType: "geometry",
		stylers: [{
			color: "#c5c6c6"
		}]
	}, {
		featureType: "road.arterial",
		elementType: "geometry",
		stylers: [{
			color: "#fff"
		}]
	}, {
		featureType: "road.local",
		elementType: "geometry",
		stylers: [{
			color: "#fff"
		}]
	}, {
		featureType: "transit",
		elementType: "geometry",
		stylers: [{
			color: "#d8dbe0"
		}]
	}, {
		featureType: "poi",
		elementType: "geometry",
		stylers: [{
			color: "#cfd5e0"
		}]
	}, {
		featureType: "administrative",
		stylers: [{
			visibility: "on"
		}, {
			lightness: 33
		}]
	}, {
		featureType: "poi.park",
		elementType: "labels",
		stylers: [{
			visibility: "on"
		}, {
			lightness: 20
		}]
	}, {
		featureType: "road",
		stylers: [{
			color: "#d8dbe0",
			lightness: 20
		}]
	}];
	return t.setStyle(o), $(e).resize(function() {
		t.autocenter()
	}), {
		restrict: "A",
		link: function(e, o) {
			t.init(o)
		}
	}
}]), App.directive("loadCss", function() {
	"use strict";

	function e(e) {
		var t = "autoloaded-stylesheet",
			o = $("#" + t).attr("id", t + "-old");
		return $("head").append($("<link/>").attr({
			id: t,
			rel: "stylesheet",
			href: e
		})), o.length && o.remove(), $("#" + t)
	}
	return {
		restrict: "A",
		link: function(t, o, a) {
			o.on("click", function(t) {
				o.is("a") && t.preventDefault();
				var n, r = a.loadCss;
				r ? (n = e(r), n || $.error("Error creating stylesheet link element.")) : $.error("No stylesheet location defined.")
			})
		}
	}
}), App.directive("markdownarea", function() {
	"use strict";
	return {
		restrict: "A",
		link: function(e, t, o) {
			{
				var a = $(t),
					n = $.fn.markdownarea;
				$.Utils.options(o.markdownarea), new n(a, $.Utils.options(o.markdownarea))
			}
		}
	}
}),
function(e, t, o) {
	"use strict";
	var a = function(t, o) {
		var n = e(t);
		n.data("markdownarea") || (this.element = n, this.options = e.extend({}, a.defaults, o), this.marked = this.options.marked || marked, this.CodeMirror = this.options.CodeMirror || CodeMirror, this.marked.setOptions({
			gfm: !0,
			tables: !0,
			breaks: !0,
			pedantic: !0,
			sanitize: !1,
			smartLists: !0,
			smartypants: !1,
			langPrefix: "lang-"
		}), this.init(), this.element.data("markdownarea", this))
	};
	e.extend(a.prototype, {
		init: function() {
			var o = this,
				n = a.template;
			n = n.replace(/\{\:lblPreview\}/g, this.options.lblPreview), n = n.replace(/\{\:lblCodeview\}/g, this.options.lblCodeview), this.markdownarea = e(n), this.content = this.markdownarea.find(".uk-markdownarea-content"), this.toolbar = this.markdownarea.find(".uk-markdownarea-toolbar"), this.preview = this.markdownarea.find(".uk-markdownarea-preview").children().eq(0), this.code = this.markdownarea.find(".uk-markdownarea-code"), this.element.before(this.markdownarea).appendTo(this.code), this.editor = this.CodeMirror.fromTextArea(this.element[0], this.options.codemirror), this.editor.markdownarea = this, this.editor.on("change", function() {
				var t = function() {
					var e = o.editor.getValue();
					o.currentvalue = String(e), o.element.trigger("markdownarea-before", [o]), o.applyPlugins(), o.marked(o.currentvalue, function(e, t) {
						if (e) throw e;
						o.preview.html(t), o.element.val(o.editor.getValue()).trigger("markdownarea-update", [o])
					})
				};
				return t(), e.Utils.debounce(t, 150)
			}()), this.code.find(".CodeMirror").css("height", this.options.height), this._buildtoolbar(), this.fit(), e(t).on("resize", e.Utils.debounce(function() {
				o.fit()
			}, 200));
			var r = o.preview.parent(),
				l = this.code.find(".CodeMirror-sizer"),
				i = this.code.find(".CodeMirror-scroll").on("scroll", e.Utils.debounce(function() {
					if ("tab" != o.markdownarea.attr("data-mode")) {
						var e = l.height() - i.height(),
							t = r[0].scrollHeight - r.height(),
							a = t / e,
							n = i.scrollTop() * a;
						r.scrollTop(n)
					}
				}, 10));
			this.markdownarea.on("click", ".uk-markdown-button-markdown, .uk-markdown-button-preview", function(t) {
				t.preventDefault(), "tab" == o.markdownarea.attr("data-mode") && (o.markdownarea.find(".uk-markdown-button-markdown, .uk-markdown-button-preview").removeClass("uk-active").filter(this).addClass("uk-active"), o.activetab = e(this).hasClass("uk-markdown-button-markdown") ? "code" : "preview", o.markdownarea.attr("data-active-tab", o.activetab))
			}), this.preview.parent().css("height", this.code.height())
		},
		applyPlugins: function() {
			var e = this,
				t = Object.keys(a.plugins),
				o = a.plugins;
			if (this.markers = {}, t.length) {
				var n = this.currentvalue.split("\n");
				t.forEach(function(e) {
					this.markers[e] = []
				}, this);
				for (var r = 0, l = n.length; l > r; r++)! function(a) {
					t.forEach(function(t) {
						var r = 0;
						n[a] = n[a].replace(o[t].identifier, function() {
							var n = o[t].cb({
								area: e,
								found: arguments,
								line: a,
								pos: r++,
								uid: [t, a, r, (new Date).getTime() + "RAND" + Math.ceil(1e5 * Math.random())].join("-"),
								replace: function(e) {
									var t = this.area.editor.getLine(this.line),
										o = t.indexOf(this.found[0]),
										a = o + this.found[0].length;
									this.area.editor.replaceRange(e, {
										line: this.line,
										ch: o
									}, {
										line: this.line,
										ch: a
									})
								}
							});
							return n
						})
					})
				}(r);
				this.currentvalue = n.join("\n")
			}
		},
		_buildtoolbar: function() {
			if (this.options.toolbar && this.options.toolbar.length) {
				var t = this,
					o = [];
				this.options.toolbar.forEach(function(e) {
					if (a.commands[e]) {
						var n = a.commands[e].title ? a.commands[e].title : e;
						o.push('<li><a data-markdownarea-cmd="' + e + '" title="' + n + '" data-toggle="tooltip">' + a.commands[e].label + "</a></li>"), a.commands[e].shortcut && t.registerShortcut(a.commands[e].shortcut, a.commands[e].action)
					}
				}), this.toolbar.html(o.join("\n")), this.markdownarea.on("click", "a[data-markdownarea-cmd]", function() {
					var o = e(this).data("markdownareaCmd");
					!o || !a.commands[o] || t.activetab && "code" != t.activetab && "fullscreen" != o || a.commands[o].action.apply(t, [t.editor])
				})
			}
		},
		fit: function() {
			var e = this.options.mode;
			"split" == e && this.markdownarea.width() < this.options.maxsplitsize && (e = "tab"), "tab" == e && (this.activetab || (this.activetab = "code", this.markdownarea.attr("data-active-tab", this.activetab)), this.markdownarea.find(".uk-markdown-button-markdown, .uk-markdown-button-preview").removeClass("uk-active").filter("code" == this.activetab ? ".uk-markdown-button-markdown" : ".uk-markdown-button-preview").addClass("uk-active")), this.editor.refresh(), this.preview.parent().css("height", this.code.height()), this.markdownarea.attr("data-mode", e)
		},
		registerShortcut: function(t, o) {
			var a = this;
			t = e.isArray(t) ? t : [t];
			for (var n = 0, r = t.length; r > n; n++) {
				var l = {};
				l[t[n]] = function() {
					o.apply(a, [a.editor])
				}, a.editor.addKeyMap(l)
			}
		},
		getMode: function() {
			var e = this.editor.getDoc().getCursor();
			return this.editor.getTokenAt(e).state.base.htmlState ? "html" : "markdown"
		}
	}), e.fn.markdownarea = function(t) {
		return this.each(function() {
			var o = e(this);
			if (!o.data("markdownarea")) {
				new a(o, t)
			}
		})
	};
	var n = function(e, t) {
		var o = t.getSelection(),
			a = e.replace("$1", o);
		t.replaceSelection(a, "end")
	};
	return a.commands = {
		fullscreen: {
			title: "Fullscreen",
			label: '<i class="fa fa-expand"></i>',
			action: function(a) {
				a.markdownarea.markdownarea.toggleClass("uk-markdownarea-fullscreen"), e("html").toggleClass("markdownarea-fullscreen"), e("html, body").scrollTop(0);
				var n = a.getWrapperElement();
				if (a.markdownarea.markdownarea.hasClass("uk-markdownarea-fullscreen")) a.state.fullScreenRestore = {
					scrollTop: t.pageYOffset,
					scrollLeft: t.pageXOffset,
					width: n.style.width,
					height: n.style.height
				}, n.style.width = "", n.style.height = a.markdownarea.content.height() + "px", o.documentElement.style.overflow = "hidden";
				else {
					o.documentElement.style.overflow = "";
					var r = a.state.fullScreenRestore;
					n.style.width = r.width, n.style.height = r.height, t.scrollTo(r.scrollLeft, r.scrollTop)
				}
				a.refresh(), a.markdownarea.preview.parent().css("height", a.markdownarea.code.height())
			}
		},
		bold: {
			title: "Bold",
			label: '<i class="fa fa-bold"></i>',
			shortcut: ["Ctrl-B", "Cmd-B"],
			action: function(e) {
				n("html" == this.getMode() ? "<strong>$1</strong>" : "**$1**", e)
			}
		},
		italic: {
			title: "Italic",
			label: '<i class="fa fa-italic"></i>',
			action: function(e) {
				n("html" == this.getMode() ? "<em>$1</em>" : "*$1*", e)
			}
		},
		strike: {
			title: "Strikethrough",
			label: '<i class="fa fa-strikethrough"></i>',
			action: function(e) {
				n("html" == this.getMode() ? "<del>$1</del>" : "~~$1~~", e)
			}
		},
		blockquote: {
			title: "Blockquote",
			label: '<i class="fa fa-quote-right"></i>',
			action: function(e) {
				n("html" == this.getMode() ? "<blockquote><p>$1</p></blockquote>" : "> $1", e)
			}
		},
		link: {
			title: "Link",
			label: '<i class="fa fa-link"></i>',
			action: function(e) {
				n("html" == this.getMode() ? '<a href="http://">$1</a>' : "[$1](http://)", e)
			}
		},
		picture: {
			title: "Picture",
			label: '<i class="fa fa-picture-o"></i>',
			action: function(e) {
				n("html" == this.getMode() ? '<img src="http://" alt="$1">' : "![$1](http://)", e)
			}
		},
		listUl: {
			title: "Unordered List",
			label: '<i class="fa fa-list-ul"></i>',
			action: function(e) {
				"markdown" == this.getMode() && n("* $1", e)
			}
		},
		listOl: {
			title: "Ordered List",
			label: '<i class="fa fa-list-ol"></i>',
			action: function(e) {
				"markdown" == this.getMode() && n("1. $1", e)
			}
		}
	}, a.defaults = {
		mode: "split",
		height: 500,
		maxsplitsize: 1e3,
		codemirror: {
			mode: "gfm",
			tabMode: "indent",
			tabindex: "2",
			lineWrapping: !0,
			dragDrop: !1,
			autoCloseTags: !0,
			matchTags: !0
		},
		toolbar: ["bold", "italic", "strike", "link", "picture", "blockquote", "listUl", "listOl"],
		lblPreview: "Preview",
		lblCodeview: "Markdown"
	}, a.template = '<div class="uk-markdownarea uk-clearfix" data-mode="split"><div class="uk-markdownarea-navbar"><ul class="uk-markdownarea-navbar-nav uk-markdownarea-toolbar"></ul><div class="uk-markdownarea-navbar-flip"><ul class="uk-markdownarea-navbar-nav"><li class="uk-markdown-button-markdown"><a>{:lblCodeview}</a></li><li class="uk-markdown-button-preview"><a>{:lblPreview}</a></li><li><a data-markdownarea-cmd="fullscreen" data-toggle="tooltip" title="Zen Mode"><i class="fa fa-expand"></i></a></li></ul></div></div><div class="uk-markdownarea-content"><div class="uk-markdownarea-code"></div><div class="uk-markdownarea-preview"><div></div></div></div></div>', a.plugins = {}, a.addPlugin = function(e, t, o) {
		a.plugins[e] = {
			identifier: t,
			cb: o
		}
	}, e.fn.markdownarea = a, e(function() {
		e("textarea[data-uk-markdownarea]").each(function() {
			var t, o = e(this);
			o.data("markdownarea") || (t = new a(o, e.Utils.options(o.attr("data-uk-markdownarea"))))
		})
	}), a
}(jQuery, window, document), App.directive("masked", function() {
	return {
		restrict: "A",
		controller: ["$scope", "$element", function(e, t) {
			var o = $(t);
			$.fn.inputmask && o.inputmask()
		}]
	}
}), App.directive("searchOpen", ["navSearch", function(e) {
	"use strict";
	return {
		restrict: "A",
		controller: ["$scope", "$element", function(t, o) {
			o.on("click", function(e) {
				e.stopPropagation()
			}).on("click", e.toggle)
		}]
	}
}]).directive("searchDismiss", ["navSearch", function(e) {
	"use strict";
	var t = '.navbar-form input[type="text"]';
	return {
		restrict: "A",
		controller: ["$scope", "$element", function(o, a) {
			$(t).on("click", function(e) {
				e.stopPropagation()
			}).on("keyup", function(t) {
				27 == t.keyCode && e.dismiss()
			}), $(document).on("click", e.dismiss), a.on("click", function(e) {
				e.stopPropagation()
			}).on("click", e.dismiss)
		}]
	}
}]), App.directive("notify", ["$window", function() {
	function e(e) {
		var t = $(e),
			o = t.data("message"),
			a = t.data("options");
		o || $.error("Notify: No message specified"), $.notify(o, a || {})
	}
	return {
		restrict: "A",
		controller: ["$scope", "$element", function(t, o) {
			o.on("click", function(t) {
				t.preventDefault(), e(o)
			})
		}]
	}
}]),
function(e) {
	var t = {}, o = {}, a = function(t) {
		return "string" == e.type(t) && (t = {
			message: t
		}), arguments[1] && (t = e.extend(t, "string" == e.type(arguments[1]) ? {
			status: arguments[1]
		} : arguments[1])), new r(t).show()
	}, n = function(e, t) {
		if (e) for (var a in o) e === o[a].group && o[a].close(t);
		else for (var a in o) o[a].close(t)
	}, r = function(a) {
		this.options = e.extend({}, r.defaults, a), this.uuid = "ID" + (new Date).getTime() + "RAND" + Math.ceil(1e5 * Math.random()), this.element = e(['<div class="uk-notify-message alert-dismissable">', '<a class="close">&times;</a>', "<div>" + this.options.message + "</div>", "</div>"].join("")).data("notifyMessage", this), this.options.status && (this.element.addClass("alert alert-" + this.options.status), this.currentstatus = this.options.status), this.group = this.options.group, o[this.uuid] = this, t[this.options.pos] || (t[this.options.pos] = e('<div class="uk-notify uk-notify-' + this.options.pos + '"></div>').appendTo("body").on("click", ".uk-notify-message", function() {
			e(this).data("notifyMessage").close()
		}))
	};
	return e.extend(r.prototype, {
		uuid: !1,
		element: !1,
		timout: !1,
		currentstatus: "",
		group: !1,
		show: function() {
			if (!this.element.is(":visible")) {
				var e = this;
				t[this.options.pos].show().prepend(this.element);
				var o = parseInt(this.element.css("margin-bottom"), 10);
				return this.element.css({
					opacity: 0,
					"margin-top": -1 * this.element.outerHeight(),
					"margin-bottom": 0
				}).animate({
					opacity: 1,
					"margin-top": 0,
					"margin-bottom": o
				}, function() {
					if (e.options.timeout) {
						var t = function() {
							e.close()
						};
						e.timeout = setTimeout(t, e.options.timeout), e.element.hover(function() {
							clearTimeout(e.timeout)
						}, function() {
							e.timeout = setTimeout(t, e.options.timeout)
						})
					}
				}), this
			}
		},
		close: function(e) {
			var a = this,
				n = function() {
					a.element.remove(), t[a.options.pos].children().length || t[a.options.pos].hide(), delete o[a.uuid]
				};
			this.timeout && clearTimeout(this.timeout), e ? n() : this.element.animate({
				opacity: 0,
				"margin-top": -1 * this.element.outerHeight(),
				"margin-bottom": 0
			}, function() {
				n()
			})
		},
		content: function(e) {
			var t = this.element.find(">div");
			return e ? (t.html(e), this) : t.html()
		},
		status: function(e) {
			return e ? (this.element.removeClass("alert alert-" + this.currentstatus).addClass("alert alert-" + e), this.currentstatus = e, this) : this.currentstatus
		}
	}), r.defaults = {
		message: "",
		status: "normal",
		timeout: 5e3,
		group: null,
		pos: "top-center"
	}, e.notify = a, e.notify.message = r, e.notify.closeAll = n, a
}(jQuery, window, document), App.directive("now", ["dateFilter", "$interval", function(e, t) {
	return {
		restrict: "E",
		link: function(o, a, n) {
			function r() {
				var t = e(new Date, l);
				a.text(t)
			}
			var l = n.format;
			r(), t(r, 1e3)
		}
	}
}]), App.directive("paneltool", ["$compile", "$timeout", function(e, t) {
	function o(e, t) {
		var o = "";
		return t = t || {}, t.toolCollapse && (o += a.collapse.replace(/{{panelId}}/g, e.parent().parent().attr("id"))), t.toolDismiss && (o += a.dismiss), t.toolRefresh && (o += a.refresh.replace(/{{spinner}}/g, t.toolRefresh)), o
	}
	var a = {
		collapse: "<a href='#' panel-collapse='' data-toggle='tooltip' title='Collapse Panel' ng-click='{{panelId}} = !{{panelId}}' ng-init='{{panelId}}=false'>                 <em ng-show='{{panelId}}' class='fa fa-plus'></em>                 <em ng-show='!{{panelId}}' class='fa fa-minus'></em>               </a>",
		dismiss: "<a href='#' panel-dismiss='' data-toggle='tooltip' title='Close Panel'>               <em class='fa fa-times'></em>             </a>",
		refresh: "<a href='#' panel-refresh='' data-toggle='tooltip' data-spinner='{{spinner}}' title='Refresh Panel'>               <em class='fa fa-refresh'></em>             </a>"
	};
	return {
		restrict: "E",
		link: function(a, n, r) {
			var l = a.panelTools || r;
			t(function() {
				n.html(o(n, l)).show(), e(n.contents())(a), n.addClass("pull-right")
			})
		}
	}
}]).directive("panelDismiss", ["$q", function(e) {
	"use strict";
	return {
		restrict: "A",
		controller: ["$scope", "$element", function(t, o) {
			var a = "panel-remove",
				n = "panel-removed";
			o.on("click", function() {
				function o() {
					var o = e.defer(),
						n = o.promise;
					t.$emit(a, i.attr("id"), o), n.then(r)
				}
				function r() {
					$.support.animation ? i.animo({
						animation: "bounceOut"
					}, l) : l()
				}
				function l() {
					var e = i.parent();
					i.remove(), e.filter(function() {
						var e = $(this);
						return e.is('[class*="col-"]:not(.sortable)') && 0 === e.children("*").length
					}).remove(), t.$emit(n, i.attr("id"))
				}
				var i = $(this).closest(".panel");
				o()
			})
		}]
	}
}]).directive("panelCollapse", ["$timeout", function(e) {
	"use strict";

	function t(e, t) {
		if (!e) return !1;
		var o = angular.fromJson(a[n]);
		o || (o = {}), o[e] = t, a[n] = angular.toJson(o)
	}
	function o(e) {
		if (!e) return !1;
		var t = angular.fromJson(a[n]);
		return t ? t[e] : void 0
	}
	var a, n = "panelState";
	return {
		restrict: "A",
		controller: ["$scope", "$element", function(n, r) {
			var l = $(r),
				i = l.closest(".panel"),
				s = i.attr("id");
			a = n.$storage;
			var c = o(s);
			void 0 !== typeof c && e(function() {
				n[s] = c
			}, 10), r.bind("click", function() {
				t(s, !n[s])
			})
		}]
	}
}]).directive("panelRefresh", ["$q", function() {
	"use strict";
	return {
		restrict: "A",
		controller: ["$scope", "$element", function(e, t) {
			function o(e, t) {
				if (t) {
					var o = "#" == t.charAt(0) ? t : "#" + t;
					angular.element(o).removeClass(n)
				}
			}
			var a = "panel-refresh",
				n = "whirl",
				r = "standard";
			t.on("click", function() {
				var t = $(this),
					o = t.parents(".panel").eq(0),
					l = t.data("spinner") || r;
				o.addClass(n + " " + l), e.$emit(a, o.attr("id"))
			}), e.$on("removeSpinner", o)
		}]
	}
}]), App.directive("animate", ["$window", function() {
	"use strict";
	var e = $(window).add("body, .wrapper");
	return {
		restrict: "A",
		link: function(t, o) {
			function a(e) {
				!e.hasClass("anim-running") && $.Utils.isInView(e, {
					topoffset: r
				}) && (e.addClass("anim-running"), setTimeout(function() {
					e.addClass("anim-done").animo({
						animation: i,
						duration: .7
					})
				}, l))
			}
			var n = $(o),
				r = n.data("offset"),
				l = n.data("delay") || 100,
				i = n.data("play") || "bounce";
			"undefined" != typeof r && (a(n), e.scroll(function() {
				a(n)
			})), n.on("click", function() {
				var e = $(this),
					t = e.data("target"),
					o = e.data("play") || "bounce",
					a = $(t);
				a && a && a.animo({
					animation: o
				})
			})
		}
	}
}]), App.directive("scrollable", function() {
	return {
		restrict: "EA",
		link: function(e, t, o) {
			var a = 250;
			t.slimScroll({
				height: o.height || a
			})
		}
	}
}), App.directive("sidebar", ["$window", "APP_MEDIAQUERY", function(e, t) {
	function o(e) {
		e.siblings("li").removeClass("open").end().toggleClass("open")
	}
	function a(e) {
		n();
		var t = e.children("ul");
		if (!t.length) return $();
		if (e.hasClass("open")) return o(e), $();
		var a = $(".aside"),
			r = s.app.layout.isFixed ? parseInt(a.css("padding-top"), 0) : 0,
			l = t.clone().appendTo(a);
		o(e);
		var i = e.position().top + r - c.scrollTop(),
			d = u.height();
		return l.addClass("nav-floating").css({
			position: s.app.layout.isFixed ? "fixed" : "absolute",
			top: i,
			bottom: l.outerHeight(!0) + i > d ? 0 : "auto"
		}), l.on("mouseleave", function() {
			o(e), l.remove()
		}), l
	}
	function n() {
		$(".sidebar-subnav.nav-floating").remove()
	}
	function r() {
		return d.hasClass("touch")
	}
	function l() {
		return p.hasClass("aside-collapsed")
	}
	function i() {
		return u.width() < t.tablet
	}
	var s, c, u = $(e),
		d = $("html"),
		p = $("body");
	return {
		restrict: "EA",
		template: '<nav class="sidebar" ng-transclude></nav>',
		transclude: !0,
		replace: !0,
		link: function(e, t) {
			s = e, c = t;
			var o = r() ? "click" : "mouseenter",
				u = $();
			c.on(o, ".nav > li", function() {
				l() && !i() && (u.trigger("mouseleave"), u = a($(this)))
			}), e.$on("closeSidebarMenu", function() {
				n(), $(".sidebar li.open").removeClass("open")
			})
		}
	}
}]), App.directive("skycon", function() {
	return {
		restrict: "A",
		link: function(e, t, o) {
			var a = new Skycons({
				color: o.color || "white"
			});
			t.html('<canvas width="' + o.width + '" height="' + o.height + '"></canvas>'), a.add(t.children()[0], o.skycon), a.play()
		}
	}
}), App.directive("sparkline", ["$timeout", "$window", function(e) {
	"use strict";

	function t(e) {
		var t = e.data();
		t.type = t.type || "bar", t.disableHiddenCheck = !0, e.sparkline("html", t), t.resize && $(window).resize(function() {
			e.sparkline("html", t)
		})
	}
	return {
		restrict: "EA",
		controller: ["$scope", "$element", function(o, a) {
			var n = function() {
				t(a)
			};
			e(n)
		}]
	}
}]), App.directive("checkAll", function() {
	"use strict";
	return {
		restrict: "A",
		controller: ["$scope", "$element", function(e, t) {
			t.on("change", function() {
				var e = $(this),
					t = e.index() + 1,
					o = e.find('input[type="checkbox"]'),
					a = e.parents("table");
				a.find("tbody > tr > td:nth-child(" + t + ') input[type="checkbox"]').prop("checked", o[0].checked)
			})
		}]
	}
}), App.directive("tagsinput", ["$timeout", function(e) {
	return {
		restrict: "A",
		require: "ngModel",
		link: function(t, o, a, n) {
			o.on("itemAdded itemRemoved", function() {
				n.$viewValue && n.$viewValue.split && (n.$setViewValue(n.$viewValue.split(",")), n.$render())
			}), e(function() {
				o.tagsinput()
			})
		}
	}
}]), App.directive("toggleState", ["toggleStateService", function(e) {
	"use strict";
	return {
		restrict: "A",
		link: function(t, o, a) {
			var n = $("body");
			$(o).on("click", function(t) {
				t.preventDefault();
				var o = a.toggleState;
				o && (n.hasClass(o) ? (n.removeClass(o), a.noPersist || e.removeState(o)) : (n.addClass(o), a.noPersist || e.addState(o)))
			})
		}
	}
}]), App.directive("uiSlider", function() {
	return {
		restrict: "A",
		controller: ["$scope", "$element", function(e, t) {
			var o = $(t);
			$.fn.slider && o.slider()
		}]
	}
}), App.directive("validateForm", function() {
	return {
		restrict: "A",
		controller: ["$scope", "$element", function(e, t) {
			var o = $(t);
			$.fn.parsley && o.parsley()
		}]
	}
}), App.directive("vectorMap", ["vectorMap", function(e) {
	"use strict";
	var t = {
		markerColor: "#23b7e5",
		bgColor: "transparent",
		scaleColors: ["#878c9a"],
		regionFill: "#bbbec6"
	};
	return {
		restrict: "EA",
		link: function(o, a, n) {
			var r = n.height || "300",
				l = {
					markerColor: n.markerColor || t.markerColor,
					bgColor: n.bgColor || t.bgColor,
					scale: n.scale || 1,
					scaleColors: n.scaleColors || t.scaleColors,
					regionFill: n.regionFill || t.regionFill,
					mapName: n.mapName || "world_mill_en"
				};
			a.css("height", r), e.init(a, l, o.seriesData, o.markersData)
		}
	}
}]), App.service("browser", function() {
	"use strict";
	var e, t, o = function(e) {
		e = e.toLowerCase();
		var t = /(opr)[\/]([\w.]+)/.exec(e) || /(chrome)[ \/]([\w.]+)/.exec(e) || /(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(e) || /(webkit)[ \/]([\w.]+)/.exec(e) || /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e) || /(msie) ([\w.]+)/.exec(e) || e.indexOf("trident") >= 0 && /(rv)(?::| )([\w.]+)/.exec(e) || e.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e) || [],
			o = /(ipad)/.exec(e) || /(iphone)/.exec(e) || /(android)/.exec(e) || /(windows phone)/.exec(e) || /(win)/.exec(e) || /(mac)/.exec(e) || /(linux)/.exec(e) || /(cros)/i.exec(e) || [];
		return {
			browser: t[3] || t[1] || "",
			version: t[2] || "0",
			platform: o[0] || ""
		}
	};
	if (e = o(window.navigator.userAgent), t = {}, e.browser && (t[e.browser] = !0, t.version = e.version, t.versionNumber = parseInt(e.version)), e.platform && (t[e.platform] = !0), (t.android || t.ipad || t.iphone || t["windows phone"]) && (t.mobile = !0), (t.cros || t.mac || t.linux || t.win) && (t.desktop = !0), (t.chrome || t.opr || t.safari) && (t.webkit = !0), t.rv) {
		var a = "msie";
		e.browser = a, t[a] = !0
	}
	if (t.opr) {
		var n = "opera";
		e.browser = n, t[n] = !0
	}
	if (t.safari && t.android) {
		var r = "android";
		e.browser = r, t[r] = !0
	}
	return t.name = e.browser, t.platform = e.platform, t
}), App.factory("colors", ["APP_COLORS", function(e) {
	return {
		byName: function(t) {
			return e[t] || "#fff"
		}
	}
}]), App.service("gmap", function() {
	return {
		setStyle: function(e) {
			this.MapStyles = e
		},
		autocenter: function() {
			var e = this.gMapRefs;
			if (e && e.length) for (var t in e) {
				var o = e[t],
					a = o.getCenter();
				o && a && (google.maps.event.trigger(o, "resize"), o.setCenter(a))
			}
		},
		init: function(e) {
			var t = this,
				o = $(e),
				a = o.data("address") && o.data("address").split(";"),
				n = o.data("title") && o.data("title").split(";"),
				r = o.data("zoom") || 14,
				l = o.data("maptype") || "ROADMAP",
				i = [];
			if (a) {
				for (var s in a) "string" == typeof a[s] && i.push({
					address: a[s],
					html: n && n[s] || "",
					popup: !0
				});
				var c = {
					controls: {
						panControl: !0,
						zoomControl: !0,
						mapTypeControl: !0,
						scaleControl: !0,
						streetViewControl: !0,
						overviewMapControl: !0
					},
					scrollwheel: !1,
					maptype: l,
					markers: i,
					zoom: r
				}, u = o.gMap(c),
					d = u.data("gMap.reference");
				t.gMapRefs || (t.gMapRefs = []), t.gMapRefs.push(d), void 0 !== o.data("styled") && d.setOptions({
					styles: t.MapStyles
				})
			}
		}
	}
}), App.service("navSearch", function() {
	var e = "form.navbar-form";
	return {
		toggle: function() {
			var t = $(e);
			t.toggleClass("open");
			var o = t.hasClass("open");
			t.find("input")[o ? "focus" : "blur"]()
		},
		dismiss: function() {
			$(e).removeClass("open").find('input[type="text"]').blur().val("")
		}
	}
}), App.service("toggleStateService", ["$rootScope", function(e) {
	var t = "toggleState",
		o = {
			hasWord: function(e, t) {
				return new RegExp("(^|\\s)" + t + "(\\s|$)").test(e)
			},
			addWord: function(e, t) {
				return this.hasWord(e, t) ? void 0 : e + (e ? " " : "") + t
			},
			removeWord: function(e, t) {
				return this.hasWord(e, t) ? e.replace(new RegExp("(^|\\s)*" + t + "(\\s|$)*", "g"), "") : void 0
			}
		};
	return {
		addState: function(a) {
			var n = angular.fromJson(e.$storage[t]);
			n = n ? o.addWord(n, a) : a, e.$storage[t] = angular.toJson(n)
		},
		removeState: function(a) {
			var n = e.$storage[t];
			n && (n = o.removeWord(n, a), e.$storage[t] = angular.toJson(n))
		},
		restoreState: function(o) {
			var a = angular.fromJson(e.$storage[t]);
			a && o.addClass(a)
		}
	}
}]),
function(e, t, o) {
	"use strict";
	var a = e("html"),
		n = e(t);
	e.support.transition = function() {
		var e = function() {
			var e, t = o.body || o.documentElement,
				a = {
					WebkitTransition: "webkitTransitionEnd",
					MozTransition: "transitionend",
					OTransition: "oTransitionEnd otransitionend",
					transition: "transitionend"
				};
			for (e in a) if (void 0 !== t.style[e]) return a[e]
		}();
		return e && {
			end: e
		}
	}(), e.support.animation = function() {
		var e = function() {
			var e, t = o.body || o.documentElement,
				a = {
					WebkitAnimation: "webkitAnimationEnd",
					MozAnimation: "animationend",
					OAnimation: "oAnimationEnd oanimationend",
					animation: "animationend"
				};
			for (e in a) if (void 0 !== t.style[e]) return a[e]
		}();
		return e && {
			end: e
		}
	}(), e.support.requestAnimationFrame = t.requestAnimationFrame || t.webkitRequestAnimationFrame || t.mozRequestAnimationFrame || t.msRequestAnimationFrame || t.oRequestAnimationFrame || function(e) {
		t.setTimeout(e, 1e3 / 60)
	}, e.support.touch = "ontouchstart" in t && navigator.userAgent.toLowerCase().match(/mobile|tablet/) || t.DocumentTouch && document instanceof t.DocumentTouch || t.navigator.msPointerEnabled && t.navigator.msMaxTouchPoints > 0 || t.navigator.pointerEnabled && t.navigator.maxTouchPoints > 0 || !1, e.support.mutationobserver = t.MutationObserver || t.WebKitMutationObserver || t.MozMutationObserver || null, e.Utils = {}, e.Utils.debounce = function(e, t, o) {
		var a;
		return function() {
			var n = this,
				r = arguments,
				l = function() {
					a = null, o || e.apply(n, r)
				}, i = o && !a;
			clearTimeout(a), a = setTimeout(l, t), i && e.apply(n, r)
		}
	}, e.Utils.removeCssRules = function(e) {
		var t, o, a, n, r, l, i, s, c, u;
		e && setTimeout(function() {
			try {
				for (u = document.styleSheets, n = 0, i = u.length; i > n; n++) {
					for (a = u[n], o = [], a.cssRules = a.cssRules, t = r = 0, s = a.cssRules.length; s > r; t = ++r) a.cssRules[t].type === CSSRule.STYLE_RULE && e.test(a.cssRules[t].selectorText) && o.unshift(t);
					for (l = 0, c = o.length; c > l; l++) a.deleteRule(o[l])
				}
			} catch (d) {}
		}, 0)
	}, e.Utils.isInView = function(t, o) {
		var a = e(t);
		if (!a.is(":visible")) return !1;
		var r = n.scrollLeft(),
			l = n.scrollTop(),
			i = a.offset(),
			s = i.left,
			c = i.top;
		return o = e.extend({
			topoffset: 0,
			leftoffset: 0
		}, o), c + a.height() >= l && c - o.topoffset <= l + n.height() && s + a.width() >= r && s - o.leftoffset <= r + n.width() ? !0 : !1
	}, e.Utils.options = function(t) {
		if (e.isPlainObject(t)) return t;
		var o = t ? t.indexOf("{") : -1,
			a = {};
		if (-1 != o) try {
			a = new Function("", "var json = " + t.substr(o) + "; return JSON.parse(JSON.stringify(json));")()
		} catch (n) {}
		return a
	}, e.Utils.events = {}, e.Utils.events.click = e.support.touch ? "tap" : "click", e.langdirection = "rtl" == a.attr("dir") ? "right" : "left", e(function() {
		if (e.support.mutationobserver) {
			var t = new e.support.mutationobserver(e.Utils.debounce(function() {
				e(o).trigger("domready")
			}, 300));
			t.observe(document.body, {
				childList: !0,
				subtree: !0
			})
		}
	}), a.addClass(e.support.touch ? "touch" : "no-touch")
}(jQuery, window, document), App.service("vectorMap", function() {
	"use strict";
	return {
		init: function(e, t, o, a) {
			e.vectorMap({
				map: t.mapName,
				backgroundColor: t.bgColor,
				zoomMin: 2,
				zoomMax: 8,
				zoomOnScroll: !1,
				regionStyle: {
					initial: {
						fill: t.regionFill,
						"fill-opacity": 1,
						stroke: "none",
						"stroke-width": 1.5,
						"stroke-opacity": 1
					},
					hover: {
						"fill-opacity": .8
					},
					selected: {
						fill: "blue"
					},
					selectedHover: {}
				},
				focusOn: {
					x: .4,
					y: .6,
					scale: t.scale
				},
				markerStyle: {
					initial: {
						fill: t.markerColor,
						stroke: t.markerColor
					}
				},
				onRegionLabelShow: function(e, t, a) {
					o && o[a] && t.html(t.html() + ": " + o[a] + " visitors")
				},
				markers: a,
				series: {
					regions: [{
						values: o,
						scale: t.scaleColors,
						normalizeFunction: "polynomial"
					}]
				}
			})
		}
	}
});
var myApp = angular.module("myAppName", ["angle"]);
myApp.run(["$log", function(e) {
	e.log("I'm a line from custom.js")
}]), myApp.controller("oneOfMyOwnController", ["$scope", function() {}]), myApp.directive("oneOfMyOwnDirectives", function() {}), myApp.config(["$stateProvider", function() {}]);